Comment alignez verticalement div à l'intérieur d'une div sans display:table-cell
Ok c'est le div de la structure.
<div class="DivParent">
<a href="#">
<div class="DivWhichNeedToBeVerticallyAligned"></div>
</a>
</div>
DivParent a fixé la largeur et la hauteur, mais DivWhichNeedToBeVerticallyAligned n'a pas de hauteur fixe des valeurs.
Si vous faites DivParent display:table-cell; vous pouvez alignez verticalement DivWhichNeedToBeVerticallyAligned mais je ne veux pas utiliser cette fonctionnalité car elle provoque quelques dégâts.
A href de la balise de lien doit être de la même taille avec la divParent je veux dire toute la divparent doit être cliquable. comme display:block.
Donc, y a-CSS façon de aligne verticalement ou léger jquery solution serait aussi de l'aide.
Merci.
Ici jsfiddle : http://jsfiddle.net/XHK2Z/
*
Quel est le problème avec display:table-cell?
OriginalL'auteur MonsterMMORPG | 2011-09-16
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser un assistant pour réaliser l'alignement vertical dans un bloc avec une hauteur fixe.
Regardez ceci: http://jsfiddle.net/kizu/7Fewx/
Là, vous devez avoir une aide de près d'un bloc que vous souhaitez aligner avec:
Et ajouter
display: inline-block; vertical-align: middle;
à.DivWhichNeedToBeVerticallyAligned
j'ai aussi fait jsfiddle : jsfiddle.net/XHK2Z
C'est parce que vous utilisez un supplément non-
inline-block
élément. Un de la manière de la faire fonctionner: déplacer le lien à wrapper: jsfiddle.net/kizu/XHK2Z/1, et l'autre, c'est passer helper ena
: jsfiddle.net/kizu/XHK2Z/2. De toute façon, il est préférable de ne pas utiliserdiv
s à l'intérieur dea
, c'est ok en HTML5, mais vous devez toujours être prudent avec cela et éviter lorsque c'est possibleMerci beaucoup pour cette!
Wow qui ont travaillé. Cela avait été de me tuer pendant des semaines sur un projet où j'ai été en utilisant le CSS pour créer des cercles, puis ajuster le texte dans les, où chaque page a un nombre différent de lignes pour le texte, tandis que le cercle a été constante.
OriginalL'auteur kizu
Il n'y a aucun moyen de le faire avec du CSS sans connaître la hauteur de l'enfant div.
Avec jQuery, vous pourriez faire quelque chose comme cela.
OriginalL'auteur timrwood
si le parent n'ont pas d'autre enfant. ce serait une css "hack"
un autre hack est
aligner verticalement est hacky. Vous aurez besoin de JS à la fin. Tout comme Facebook: facebook.com/notes/facebook-engineering/...
OriginalL'auteur Mohsen
Cette solution fonctionne pour moi bien dans les navigateurs modernes, y compris IE 10 et au-dessus.
inlucluding cette css
OriginalL'auteur hemkaran_raghav
J'ai été en utilisant la solution suivante (pas de positionnement, pas de table-cell/table-row et pas de ligne de hauteur) depuis plus d'un an, il fonctionne avec IE 7 et 8.
OriginalL'auteur Arsh
Ici est une autre option pour les navigateurs modernes:
OriginalL'auteur Tom Sarduy