CSS系列 - 居中

115 阅读1分钟

flex

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>flex</title>
    <style>
      .parent {
        height: 100vh;
        display: flex;
        justify-content: center;
        align-items: center;
      }
    </style>
  </head>
  <body>
    <div class="parent">
      <div class="child">hello world</div>
    </div>
  </body>
</html>

grid

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>grid</title>
    <style>
      .parent {
        height: 100vh;
        display: grid;
        place-items: center;
      }
    </style>
  </head>
  <body>
    <div class="parent">
      <div class="child">hello world</div>
    </div>
  </body>
</html>

margin auto

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>flex</title>
    <style>
      .parent {
        display: flex;
        height: 100vh;
      }
      .child {
        margin: auto;
      }
    </style>
  </head>
  <body>
    <div class="parent">
      <div class="child">hello world</div>
    </div>
  </body>
</html>

position transform

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>position absolute</title>
    <style>
      .parent {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
      }
    </style>
  </head>
  <body>
    <div class="parent">
      <div class="child">hello world</div>
    </div>
  </body>
</html>

table text-align

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>table tag</title>
    <style>
      table {
        height: 100vh;
        width: 100%;
      }
      .father {
        text-align: center;
      }
    </style>
  </head>
  <body>
    <table>
      <tbody>
        <tr>
          <td class="father">
            <div class="child">hello world</div>
          </td>
        </tr>
      </tbody>
    </table>
  </body>
</html>

table

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>table</title>
    <style>
      .parent {
        width: 100vw;
        height: 100vh;
        display: table;
      }
      .child {
        display: table-cell;
        vertical-align: middle;
        text-align: center;
      }
    </style>
  </head>
  <body>
    <div class="parent">
      <div class="child">hello world</div>
    </div>
  </body>
</html>

vertical-align

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>vertical-align</title>
    <style>
      .parent {
        height: 100vh;
        text-align: center;
      }
      .parent::before {
        content: "";
        display: inline-block;
        height: 100%;
        vertical-align: middle;
      }
      .child {
        display: inline-block;
        vertical-align: middle;
      }
    </style>
  </head>
  <body>
    <div class="parent">
      <div class="child">hello world</div>
    </div>
  </body>
</html>

writing-mode

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>writing-mode</title>
    <style>
      .parent {
        writing-mode: vertical-lr;
        text-align: center;
        width: 100%;
        height: 100vh;
      }
      .child {
        writing-mode: horizontal-tb;
        display: inline-block;
        width: 100%;
      }
    </style>
  </head>
  <body>
    <div class="parent">
      <div class="child">hello world</div>
    </div>
  </body>
</html>