CSS Vertical align milieu
Je suis en train d'aligner verticalement un élément SPAN au moyen d'un élément parent.
C'est ce que je fais:
Je suis en train d'essayer d'obtenir à la fois le nom d'utilisateur et le mot de passe étiquettes à être alignés verticalement (au milieu) avec les zones de saisie.
C'est mon code HTML:
<div class="login_field_wrap">
<span>Username</span>
<input type="text" autocomplete="off" spellcheck="off" id="username" name="username">
<div class="clear"></div>
</div>
C'est ce que j'ai essayé:
.clear { clear:both; }
.login_field_wrap span {
float:left; vertical-align:middle; font-size:13px; color:#333; font-weight:bold; }
.login_field_wrap input {
float:right; vertical-align:middle; padding:8px 5px; border:solid 1px #AAA;
margin:0px; width:250px; }
Aligne verticalement un élément de l'image à l'intérieur de cet emballage DIV fonctionne tout à fait bien, bien dans Chrome, de toute façon, il ne s'aligne pas avec ma PORTÉE!
Toute aide serait étonnant.
S'il vous plaît être gentil avec vos utilisateurs et plutôt qu'un générique
J'ai toujours utiliser des étiquettes pour les cases à cocher et les boutons radio en raison de leur petite taille. À l'aide d'une étiquette augmente évidemment la zone cliquable rendre plus facile à utiliser, mais est-il vraiment nécessaire de fournir une étiquette pour une zone de texte qui est 250px x 30px? Lorsque vous naviguez sur internet moi-même, je n'ai jamais cliqué sur une zone de texte de l'étiquette pour se concentrer sur elle. Est-il une autre raison pourquoi je devrais être à l'aide d'une étiquette?
L'augmentation de la zone frappée est juste l'un des avantages de l'utilisation des étiquettes, l'autre raison importante est pour les utilisateurs de lecteur d'écran. En faisant explicitement d'associer les étiquettes avec les contrôles de formulaire, le lecteur d'écran va lire les étiquettes correctement lorsque le formulaire de contrôle est concentré.
Ok, c'est intéressant de lire sur. Merci pour votre commentaire @steveax.
<span>
, l'utilisation d'une étiquette qui est explicitement associée au contrôle de formulaire: <label for="username">Username</label>
.J'ai toujours utiliser des étiquettes pour les cases à cocher et les boutons radio en raison de leur petite taille. À l'aide d'une étiquette augmente évidemment la zone cliquable rendre plus facile à utiliser, mais est-il vraiment nécessaire de fournir une étiquette pour une zone de texte qui est 250px x 30px? Lorsque vous naviguez sur internet moi-même, je n'ai jamais cliqué sur une zone de texte de l'étiquette pour se concentrer sur elle. Est-il une autre raison pourquoi je devrais être à l'aide d'une étiquette?
L'augmentation de la zone frappée est juste l'un des avantages de l'utilisation des étiquettes, l'autre raison importante est pour les utilisateurs de lecteur d'écran. En faisant explicitement d'associer les étiquettes avec les contrôles de formulaire, le lecteur d'écran va lire les étiquettes correctement lorsque le formulaire de contrôle est concentré.
Ok, c'est intéressant de lire sur. Merci pour votre commentaire @steveax.
OriginalL'auteur TheCarver | 2012-03-28
Vous devez vous connecter pour publier un commentaire.
Vertical alignement via CSS peut être difficile, et tout en CSS3 apporte une flopée de goodies pour aider à la, CSS3 est plutôt terne dans le navigateur actuel du marché.
Pour obtenir cet effet, je mis la
line-height
des biens de l'enfant de l'élément est égale à la hauteur de son contenant l'élément.Par exemple, je voudrais utiliser le code CSS suivant:
Le seul inconvénient de l'utilisation de
line-height
à alignez verticalement quelque chose est de savoir si le texte déborde sur une deuxième ligne, dans ce cas, votre design sera essentiellement pause.line-height: 30px
). Si elle ne change pas, alors vous devriez envisager d'utiliser l'affichage de la table de la méthode. De toute façon, il faut y avoir une meilleure façon de aligne verticalement pertinente des éléments inline. Grande réponse @Moïse.OriginalL'auteur Moses
Il suffit de retirer le
float
bien de vos span class et mis àdisplay:inline-block
et lavertical-align:middle
propriété de travail, comme suit:Edit: nettoyé votre code un peu, voici une démo qui devrait fonctionner sur tous les navigateurs.
http://jsfiddle.net/kUe3Y/
OriginalL'auteur Andres Ilich
J'ai trouvé la meilleure façon de le faire est de fixer le conteneur parent propriété d'affichage à
table
et l'enfant de propriété d'affichage àtable-cell
J'ai été en mesure d'obtenir ce à aligner verticalement un point d'ancrage de l'élément à l'intérieur d'un div.
Je l'ai mis dans les termes de votre question dans cette jsFiddle.
OriginalL'auteur Joe Badaczewski
Je n'ai jamais été en mesure d'obtenir
vertical-align
de travailler dans autre chose que des <td>s.Une solution de contournement, j'ai souvent l'utilisation serait de définir une hauteur de
.login_field_wrap
, puis définissez laline-height
propriété dans le <span> être égale à.login_field_wrap
hauteur.OriginalL'auteur Paul
Je pense text-align:center; doit travailler sur des éléments trop. Si je ne me trompe pas, qui travaille habituellement, même si pas sur le texte.
OriginalL'auteur corvid