Maison > interface Web > tutoriel CSS > Résumer les solutions au problème de centrage CSS

Résumer les solutions au problème de centrage CSS

高洛峰
Libérer: 2017-03-13 15:02:02
original
1458 Les gens l'ont consulté

Problèmes rencontrés avec le centrage CSSRésumé

Centrage horizontal

  • [Éléments en ligne] applicables aux inline, inline-block, inline-table , l'élément inline-flex

    .center {
      text-align: center;
    }
    Copier après la connexion
  • [Élément de niveau bloc] s'applique à l'élément de niveau bloc

    ①Un élément de niveau bloc

       .center {
     margin: 0 auto;
       }
    Copier après la connexion

    ②Plusieurs éléments au niveau du bloc

    方法一:将块级元素变为行内块级元素
    
    html部分:
    <main class="inline-block-center">
      <p>1</p>
      <p>2</p>
      <p>3</p>
    </main>
    css部分:
    .inline-block-center {
      text-align: center;
    }
    .inline-block-center p {
      display: inline-block;
      text-align: left;
    }
    
    
    方法二:flex布局
    
    html部分:
    <main class="flex-center">
      <p>1</p>
      <p>2</p>
      <p>3</p>
    </main>
    css部分:
    .flex-center{
        display:flex;
      justify-content:center;
    }
    Copier après la connexion

Centrés verticalement

  • [Éléments en ligne]

    ①Élément en ligne unique :

    Cas 1 : lorsque le lien ou le texte a un élément enveloppé, définissez un remplissage supérieur et inférieur égal

    .link {
      padding-top: 30px;
      padding-bottom: 30px;
    }
    Copier après la connexion

    Cas 2 : lorsque le lien ou le texte n'a pas d'enveloppe, définissez la ligne la hauteur et la hauteur doivent être égales

    .center-text-trick {
      height: 100px;
      line-height: 100px
    }
    Copier après la connexion

    ②Plusieurs éléments en ligne :

    方法一:将多个行内元素分别置于table-cell中
    
    html部分:
    <table>
      <tr>
    <td>
      1
    </td>
      </tr>
    </table>
    css部分:
    table td {
      background: black;
      color: white;
      padding: 20px;
      border: 10px solid white;
      /* default is vertical-align: middle; */
    }
    
    
    方法二:将父元素设置为display:table,将自身设置为display:table-cell
    
    html部分:
    <p class="center-table">
      <p>1</p>
    </p>
    css部分:
    .center-table {
      display: table;
      height: 250px;
      width: 240px;
    }
    .center-table p {
      display: table-cell;
      vertical-align: middle;
    }
    
    
    方法三:使用felex
    
    html部分:
    <p class="flex-center">
      <p>1</p>
    </p>
    css部分:
    .flex-center{
      display: flex;
      justify-content: center;
      flex-direction: column;
      height: 400px;/*父容器必须有固定高度*/
    }
    
    
    方法四:当以上代码均不可用时,可尝试此奇淫巧技
    
    html部分:
    <p class="ghost-center">
      <p>1</p>
    </p>
    css部分:
    .ghost-center {
      position: relative;
    }
    .ghost-center::before {
      content: " ";
      display: inline-block;
      height: 100%;
      width: 1%;
      vertical-align: middle;
    }
    .ghost-center p {
      display: inline-block;
      vertical-align: middle;
    }
    Copier après la connexion
  • [Éléments au niveau du bloc]

    ①Hauteur de l'élément connue ( Positionnement absolu Marge négative)

    .parent {
      position: relative;
    }
    .child {
      position: absolute;
      top: 50%;
      height: 100px;
      margin-top: -50px; /* 为元素高度的一半,没有box-sizing时,为height+padding+border的一半*/
    }
    Copier après la connexion

    ② Hauteur de l'élément inconnue (similaire à la méthode précédente)

    .parent {
      position: relative;
    }
    .child {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
    }
    Copier après la connexion

    ③disposition flexible

    .parent {
      display: flex;
      flex-direction: column;
      justify-content: center;
    }
    Copier après la connexion

Centrés horizontalement et verticalement

① Éléments avec largeur et hauteur fixes

.parent {
  position: relative;
}

.child {
  width: 300px;
  height: 100px;
  padding: 20px;

  position: absolute;
  top: 50%;
  left: 50%;

  margin: -70px 0 0 -170px;/* 注意此处为height+padding+的一半*/
}
Copier après la connexion

② Éléments sans largeur et hauteur fixes (identiques aux éléments précédents sans largeur fixe et la hauteur, utilisez la solution de transformation)

.parent {
  position: relative;
}
.child {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
Copier après la connexion

③Utilisez la disposition flexbox

.parent {
  display: flex;
  justify-content: center;
  align-items: center;
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal