Maison  >  Article  >  interface Web  >  Méthode de centrage horizontal et vertical

Méthode de centrage horizontal et vertical

php中世界最好的语言
php中世界最好的语言original
2018-03-22 14:43:272172parcourir

Cette fois je vais vous présenter la méthode de centrage horizontal et vertical Quelles sont les précautions pour le centrage horizontal et vertical Voici un cas pratique, jetons un oeil.

1. Centrage des éléments hors du flux de documents

Méthode 1 : margin:auto méthode

Code CSS :

p{
      width: 400px;
      height: 400px;
      position: relative;
      border: 1px solid #465468;
 }
 img{
      position: absolute;
      margin: auto;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
 }

Code HTML :

<p>
   <img src="mm.jpg">
</p>

Rendu :

Quand Quand un élément est positionné de manière absolue , il sera positionné en fonction du premier élément ancêtre qui n'est pas positionné statiquement, donc l'img ici est positionné en fonction du p externe.

Méthode 2 : Méthode de marge négative

Code CSS :

.container{
      width: 500px;
      height: 400px;
      border: 2px solid #379;
      position: relative;
 }
 .inner{
      width: 480px;
      height: 380px;
      background-color: #746;
      position: absolute;
      top: 50%;
      left: 50%;
      margin-top: -190px; /*height的一半*/
      margin-left: -240px; /*width的一半*/
 }

Code HTML :

<p class="container">
    <p class="inner"></p>
</p>

Rendu :

Ici, nous utilisons d'abord top:50% et left:50% pour déplacer l'origine des coordonnées internes (coin supérieur gauche) vers le centre de le conteneur , puis utilisez une marge négative pour le décaler vers la gauche de la moitié de sa largeur, puis décalez-le vers le haut de la moitié de sa hauteur, de sorte que le point central de l'intérieur soit aligné avec le point central du conteneur.

2. Centrage des éléments qui ne sont pas hors du flux documentaire

Méthode 1 : méthode table-cell

Code CSS :

p{
    width: 300px;
    height: 300px;
    border: 3px solid #555;
    display: table-cell;
    vertical-align: middle;
    text-align: center;
}
img{
    vertical-align: middle;
}

Code HTML :

<p>
    <img src="mm.jpg">
</p>

Rendu :

Alignement vertical : le milieu sur p contrôle le centrage dans la direction verticale, tandis que l'alignement du texte : le centre contrôle la direction horizontale. Un fait intéressant est que lorsque nous supprimons le vertical-align: middle de img, cela ressemble à ceci :

Il est toujours centré ! Est-ce vraiment centré ?

On voit que l'image s'est un peu déplacée vers le haut et n'est plus centrée dans le sens vertical. Pourquoi? Je ne sais pas pourquoi, si tu sais, peux-tu me le dire ?

Mais si on change l'image en texte :

Code CSS :

p{
    border: 3px solid #555;
    width: 300px;
    height: 200px;
    display: table-cell;
    vertical-align: middle;
    text-align: center;
}
span{
    vertical-align: middle;
}

Code HTML :

<p>
    <span>这是放在span中的文字,通过外层p设置display: table-cell以及vertical-align: middle实现垂直居中。</span>
</p>

Rendu :

Lorsque nous supprimons le vertical-align: middle of span, cela ressemble à ceci :

Voyez-vous la différence ? Le texte a un interligne plus petit. Si vous exécutez le code sur votre ordinateur, vous constaterez que ces lignes de texte sont déplacées vers le milieu et ne se sont pas déplacées vers le haut comme sur l'image. J'essaie également de comprendre ce qui se passe. Si vous connaissez la raison, dites-le-moi.

Méthode 2 : Méthode de boîte flexible

Code CSS :

.container{
      width: 300px;
      height: 200px;
      border: 3px solid #546461;
      display: -webkit-flex;
      display: flex;
      -webkit-align-items: center;
      align-items: center;
      -webkit-justify-content: center;
      justify-content: center;
 }
 .inner{
      border: 3px solid #458761;
      padding: 20px;
 }

Code HTML :

<p class="container">
    <p class="inner">
        我在容器中水平垂直居中
    </p>
</p>

Rendu :

align-items contrôle le centrage vertical et justifié-content contrôle le centrage horizontal. Il s'agit d'une nouvelle méthode de CSS3. L'état de prise en charge du navigateur est le suivant :

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. , veuillez prêter attention aux autres articles connexes sur le site Web PHP chinois !

Lecture recommandée :

Utilisez du transparent pour créer des triangles

Définissez des éléments translucides

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

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