Maison >interface Web >tutoriel CSS >CSS résout le problème du centrage vertical de hauteur inconnue_CSS/HTML

CSS résout le problème du centrage vertical de hauteur inconnue_CSS/HTML

WBOY
WBOYoriginal
2016-05-16 12:10:541518parcourir

Sauf indication contraire, le contenu de ce site est créé avec autorisation de partage et est destiné à un usage non commercial. Veuillez respecter le fruit de votre travail.

Titre original : Centrage vertical en CSS

Sous-titre : La solution définitive de Yuhu avec une hauteur inconnue

Traduction : forestgan

Bien qu'il existe la fonctionnalité d'alignement vertical du CSS, il ne peut pas résoudre efficacement le problème de centrage vertical de hauteur inconnue (lorsqu'il y a du texte ou une image de hauteur inconnue dans une balise DIV).

Pour les navigateurs standards tels que Mozilla, Opera, Safari, etc., vous pouvez définir le mode d'affichage de l'élément parent sur TABLE (affichage : table;) et les éléments enfants internes sur table-cell (affichage : table-cell ). La fonctionnalité d'alignement vertical le centre verticalement, mais n'est pas prise en charge par les navigateurs non standard.

Les navigateurs non standard ne peuvent définir l'élément enfant qu'à 50 % du haut, puis placer un élément à l'intérieur avec une distance de -50 % du haut pour le décaler.

CSS
body {padding : 0 ; margin : 0 ;>
body,html{hauteur : 100 %;}
#outer {hauteur : 100 % ; débordement : caché ; position : relative ; width : 100 % ; background:ivory;}
#outer[id] {display: table; position: static;}
#middle {position: top: 50%;} /* pour l'explorateur uniquement* /
#middle[id] {display : table-cell ; vertical-align : middle ; position : statique;🎜>#inner {position : relative ; top : -50 % ; largeur : 400 px ; marge : 0 auto;} /* pour l'explorateur uniquement */
div.greenBorder {border: 1px solid green; background-color: ivory;}

XHTML






L'avantage du code CSS ci-dessus est qu'il n'y a pas de hacks et qu'il utilise le sélecteur CSS2 #value[id] qui n'est pas pris en charge par IE.

Le sélecteur CSS2 #value[id] est équivalent au sélecteur #value, mais Internet Explorer ne prend pas en charge ce type de sélecteur. De même, .value[class] est équivalent à .value, qui ne peut être lu que par les navigateurs standards.

Test : Firefox1.5, Opera9.0, IE6.0, IE5.0 réussis.

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn