Comment utiliser display:table-cell, le premier doit être défini sur l'élément parent et le second doit être défini sur l'élément enfant, nous devons donc ajouter un autre élément
pour le texte qui doit être positionné :
div#envelopper {
hauteur : 400 px ;
affichage:tableau;
}
div#contenu {
alignement vertical : milieu ;
display:table-cellule;
bordure : 1px solide #FF0099 ;
couleur d'arrière-plan :#FFCCFF ;
largeur : 760 px ;
}
Centrage vertical du texte multiligne
Maintenant, nous voulons centrer ce texte verticalement ! Webjx.Com
div#envelopper {
hauteur : 400 px ;
affichage:tableau;
}
div#contenu {
alignement vertical : milieu ;
display:table-cellule;
bordure : 1px solide #FF0099 ;
couleur d'arrière-plan :#FFCCFF ;
largeur : 760 px ;
}
Cette méthode serait idéale, mais malheureusement Internet Explorer 6 ne comprend pas correctement display:table et display:table-cell, donc cette méthode est utilisée dans
Il n'est pas valide dans Internet Explorer 6 et versions antérieures. Eh bien, c'est déprimant ! Cependant, nous avons d'autres méthodes. 4. Solution dans Internet Explorer.
Dans Internet Explorer 6 et versions antérieures, il existe un défaut dans les calculs de hauteur. Après avoir positionné l'élément parent dans Internet Explorer 6, si vous positionnez ensuite l'élément enfant
Lors des calculs de pourcentage, la base de calcul semble héritée (si la valeur positionnée est une valeur absolue, il n'y a pas de problème, mais la base de calcul de pourcentage ne sera plus celle de l'élément)
hauteur au lieu de la hauteur de positionnement héritée de l'élément parent). Par exemple, nous avons l’extrait de code (X)HTML suivant :
Si nous effectuons un positionnement absolu sur le sous-enveloppement, alors le contenu héritera également de cet attribut, même s'il ne sera pas affiché immédiatement sur la page, si le contenu est positionné davantage.
Lorsque les lignes sont positionnées les unes par rapport aux autres, le ratio de 100 % que vous utilisez ne correspondra plus à la hauteur d'origine du contenu. Par exemple, si nous définissons la position du sous-enveloppement à 40 %, si nous voulons que le contenu
Si le bord chevauche le wrap, top:-80% doit être défini ; alors, si nous définissons top:50% du subwrap, nous devons utiliser 100% pour ramener le contenu à sa position d'origine.
, mais que se passerait-il si nous fixions également le contenu à 50 % ? Ensuite, il est exactement centré verticalement. Nous pouvons donc utiliser cette méthode pour réaliser un centrage vertical dans Internet Explorer 6 :
div#envelopper {
bordure : 1px solide #FF0099 ;
couleur d'arrière-plan :#FFCCFF ;
largeur : 760 px ;
hauteur : 400 px ;
position : relative ;
}
div#subwrap {
position : absolue ;
bordure : 1px solide #000 ;
haut : 50 % ;
}
div#contenu {
bordure : 1px solide #000 ;
position : relative ;
haut : -50% ;
}
Bien entendu, ce code ne fonctionnera que dans les navigateurs présentant des problèmes informatiques tels qu'Internet Explorer 6. (Mais je ne comprends pas. J’ai consulté beaucoup d’articles et je ne sais pas si c’est à cause du
Sont-ils identiques ou pour une raison quelconque ? Il semble que beaucoup de gens ne soient pas disposés à expliquer le principe de ce bug dans Internet Explorer 6. Je n'ai qu'une compréhension superficielle et j'ai besoin de l'étudier plus en détail.)
Centrage vertical du texte multiligne
Maintenant, nous voulons centrer ce texte verticalement !
div#envelopper {
bordure : 1px solide #FF0099 ;
couleur d'arrière-plan :#FFCCFF ;
largeur : 760 px ;
hauteur : 500 px ;
position : relative ;
}
div#subwrap {
position : absolue ;
bordure : 1px solide #000 ;
haut : 50 % ;
}
div#contenu {
bordure : 1px solide #000 ;
position : relative ;
haut : -50% ;
5. La solution parfaite
Ensuite, nous pouvons obtenir une solution parfaite en combinant les deux méthodes ci-dessus, mais cela nécessite la connaissance du hack CSS. Pour utiliser CSS Hack pour distinguer les navigateurs, vous pouvez
Veuillez vous référer à cet article « Simple CSS hack : Différencier entre IE6, IE7, IE8, Firefox et Opera » :
div#envelopper {
affichage:tableau;
bordure : 1px solide #FF0099 ;
couleur d'arrière-plan :#FFCCFF ;
largeur : 760 px ;
hauteur : 400 px ;
_position:relative;
débordement : caché ;
}
div#subwrap {
alignement vertical : milieu ;
display:table-cellule;
_position : absolue ;
_haut : 50 % ;
}
div#contenu {
_position:relative;
_haut:-50%;
}
À ce stade, une solution de centrage parfaite est créée.
Centrage vertical du texte multiligne
Maintenant, nous voulons centrer ce texte verticalement !
div#envelopper {
bordure : 1px solide #FF0099 ;
couleur d'arrière-plan :#FFCCFF ;
largeur : 760 px ;
hauteur : 500 px ;
position : relative ;
}
div#subwrap {
position : absolue ;
bordure : 1px solide #000 ;
haut : 50 % ;
}
div#contenu {
bordure : 1px solide #000 ;
position : relative ;
haut : -50% ;
ps La valeur du centrage vertical vertical-align est au milieu, tandis que la valeur du centrage horizontal align est center Bien qu'ils soient tous deux centrés, les mots-clés sont différents.