CSS quatre méthodes pour réaliser un centrage vertical
巴扎黑
Libérer: 2017-09-07 09:14:19
original
1709 Les gens l'ont consulté
Cet article triera quatre types de CSS pour vous permettre d'obtenir l'effet de centrage vertical. L'idée est claire et très bonne, et elle a une valeur de référence. Les amis qui en ont besoin peuvent s'y référer
line-height Pour réaliser le centrage vertical d'une seule ligne de texte
Je pensais que le centrage vertical d'une seule ligne de texte nécessitait de régler la hauteur et la ligne height à la même valeur, mais il n'est en fait pas nécessaire de définir la hauteur. En fait, le texte lui-même apparaît centré sur une ligne. Sans définir de hauteur, la hauteur de ligne augmente la hauteur.
Définissez vertical-align:middle pour obtenir un centrage vertical
【1】Définissez l'affichage de l'élément parent sur table-cell
En définissant vertical-align:middle pour l'élément table-cell , vous pouvez le faire. Tous les éléments enfants sont centrés verticalement. Ceci est similaire au centrage vertical des cellules dans les tableaux
[Remarque] Si le navigateur IE7 le prend en charge, vous pouvez le modifier en
to table-cell ne peut pas utiliser un positionnement flottant ou absolu, car le positionnement flottant ou absolu donnera à l'élément des caractéristiques d'élément de niveau bloc, perdant ainsi la fonction d'alignement vertical de l'élément table-cell.
Si un traitement de positionnement flottant ou absolu est requis, une autre couche de p doit être placée à l'extérieur.
[2] Si l'élément enfant est une image, définissez plutôt la hauteur de ligne de l'élément parent. de la hauteur et définissez la taille de police de l'élément parent sur 0.
alignement vertical : L'explication du milieu est que le milieu de l'élément est aligné avec la ligne de base de l'élément parent plus la moitié de la hauteur de la lettre X dans l'élément parent. Parce que le caractère X n'est pas centré verticalement dans la zone em et que les positions haute et basse du caractère X dans chaque police sont incohérentes.
Ainsi, lorsque la taille de la police est plus grande, la différence est plus évidente. Lorsque la taille de la police est 0, cela équivaut à définir la taille de la police du caractère X sur 0, ce qui permet d'obtenir un centrage vertical complet.
【3】Obtenez un effet de centrage vertical en ajoutant de nouveaux éléments
Définissez la hauteur du nouvel élément sur la hauteur du parent, la largeur sur 0, et définissez également l'élément de bloc en ligne centré verticalement de vertical-align:middle. Puisque l'espace entre les deux éléments est analysé, vous devez définir font-size:0 au niveau parent, puis définir font-size sur la valeur requise au niveau enfant, si les exigences structurelles ne sont pas strictes, vous pouvez afficher ; les deux éléments sur une seule ligne, il n'est alors pas nécessaire de définir font-size:0.
Idée 3 : Centrage vertical par positionnement absolu
【1】Si la hauteur de l'élément enfant n'est pas fixe, utilisez top50% et translationY(-50%) pour obtenir l'effet de centrage.
Le pourcentage de la fonction de traduction est relatif à sa propre hauteur, donc top:50% combiné avec traduireY(-50%) peut obtenir l'effet de centrage.
[Note] Le navigateur IE9 ne prend pas en charge
[Note] Si la hauteur de l'élément enfant est connue, la fonction translation() peut également être remplacée par margin-top : a valeur de hauteur négative.
[2] Si la hauteur de l'élément enfant est fixe, combinée avec l'attribut de modèle de boîte positionné de manière absolue, l'effet de centrage est obtenu
En alignement horizontal au centre, placez une couche de p à l'extérieur de l'élément et définir absolu et définir une marge gauche négative sur l'élément. Ou l'attribut gauche négatif relatif peut obtenir l'effet de centrage horizontal. Mais comme la marge est relative à la largeur du bloc conteneur, margin-top:-50% obtient la largeur au lieu de -50% de la hauteur, ce n'est donc pas réalisable pour la valeur relative en pourcentage, la hauteur du bloc conteneur ; is auto Dans ce cas, les navigateurs Chrome, Safari et IE8+ ne prennent pas en charge la définition du pourcentage de valeur supérieure de l'élément, ce n'est donc pas réalisable.
Idée 4 : Utilisez le modèle de boîte flexible flex pour obtenir un centrage vertical[Remarque] Le navigateur IE9 ne prend pas en charge
【1】Définissez l'alignement de l'axe transversal sur les éléments d'alignement du conteneur évolutif : center
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