8 esquemas de centralização vertical e horizontal CSS

    Prefácio: No desenvolvimento diário do front end, geralmente o domínio de três ou cinco soluções é suficiente para resolver a maioria das necessidades de centragem vertical e horizontal. Portanto, este artigo não é usado para lidar com requisitos de trabalho e espero que, jogando tijolos e atraindo jade, eu possa explorar a profundidade do CSS com todos.

Aqui estão algumas maneiras que eu conheço:

 1. Elementos em nível de bloco

1. Posicionamento + margem: automático

<div class="box">你好,世界。</div>

<style type="text/css">
  .box {
    width: 100px;
    height: 100px;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
  }
</style>


    Nota: Compatível com ie7. A largura e a altura da caixa precisam ser definidas, caso contrário, a caixa preencherá todo o elemento pai ou corpo.

2. Posicionamento + margem negativa

<div class="box">你好,世界。</div>

<style type="text/css">
  .box {
    width: 100px;
    height: 100px;
    position: absolute;
    top: 50%;
    left: 50%;
    margin-top: -50px;
    margin-left: -50px;
  }
</style>


    Nota: Compatível com ie7. A largura e a altura fixas da caixa são necessárias para calcular a margem.

3. Posicionamento + tradução

<div class="box">你好,世界。</div>

<style type="text/css">
  .box {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }
</style>


    Nota: compatibilidade com ie10. Não há necessidade de prestar atenção à largura e altura da caixa, pode ser adaptável.

4. Posicionamento + cálculo

<div class="box">你好,世界。</div>

<style type="text/css">
  .box {
    width: 100px;
    height: 100px;
    position: absolute;
    top: calc(50% - 50px);
    left: calc(50% - 50px);
  }
</style>


    Nota: compatibilidade com ie9. A largura e a altura fixas da caixa são necessárias para calcular calc.

5、flexível

<div class="parent">
  <div class="box">你好,世界。</div>
</div>

<style type="text/css">
  .parent {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100vh;
  }
</style>


    Nota: compatibilidade com ie11. O elemento pai precisa ser adicionado. Não há necessidade de prestar atenção à largura e altura da caixa, pode ser adaptável. (Quando a largura da caixa excede o pai, é necessário lidar com o colapso do conteúdo da caixa.)

2. Elementos embutidos

1、alinhamento de texto + alinhamento vertical

<div class="parent">
  <div class="box">你好,世界。</div>
  <div class="after"></div>
</div>

<style type="text/css">
  .parent {
    height: 100vh;
    text-align: center;
  }
  .after{
    display: inline-block;
    *display: inline;
    *zoom: 1;
    height: 100%;
    vertical-align: middle;
  }
  .box{
    display: inline-block;
    *display: inline;
    *zoom: 1;
    vertical-align: middle;
  }
</style>


    Nota: compatibilidade com ie4. Confie em elementos irmãos ou pseudo-elementos (pseudo-elementos são compatíveis até ie9). Tanto a mesa quanto a mesa são a antiga magia da centralização vertical e horizontal dos elementos no nível do bloco.

2、alinhamento de texto + altura da linha

<div class="parent">
  <span class="box">你好,世界。</span>
</div>

<style type="text/css">
  .parent {
    height: 100vh;
    line-height: 100vh;
    text-align: center;
  }
</style>


    Nota: compatibilidade com ie4. Requer a altura do elemento pai, válido apenas para elementos de bloco inline ou inline.

3. Elementos de formulário

1、Tabela + alinhamento de texto

<div class="parent">
  <span class="box">你好,世界。</span>
</div>

<style type="text/css">
  .parent {
    display: table;
    width: 100vh;
    height: 100vh;
  }
  .box{
    display: table-cell;
    vertical-align: middle;
    text-align: center;
  }
</style>


    Nota: compatibilidade com ie8.

2、Tabela + alinhamento de texto

<Table>
  <tr>
    <td>你好,世界</td>
  </tr>
</Table>

<style type="text/css">
  Table {
    width: 100vh;
    height: 100vh;
    text-align: center;
  }
</style>


    Nota: compatibilidade com ie3. Magia antiga! ! !

Acho que você gosta

Origin blog.csdn.net/qq_38629292/article/details/125801031
Recomendado
Clasificación