网格布局实现居中布局

1. 前言

本小节,我们将采用网格布局来实现居中布局的样式。

网格其实就是最近比较火的 Grid 布局,原理就是把父元素分割成一个个的小格子。

然后子元素指定自己具体在那个格子上,有点类似于表格布局。

2. 实例代码

通过网格布局实现移动端居中布局。

实例演示
预览 复制
复制成功!
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    /* 清除默认样式 */
    * { padding: 0; margin: 0; }

    /* 令html和body全屏显示, 并有一个灰色背景 */
    html, body { height: 100%; background: gray; }

    /* 中央盒子的直接父元素 */
    body {
      /* 令其变成网格布局 */
      display: grid;

      /* 令子元素居中 */
      place-items: center;
    }

    .center {
	  /* 不用给宽高,但是可以给个内边距防止内容与盒子过于贴合 */
      padding: 10px;
      
      /* 白色背景 */
      background: white;
    }
  </style>
</head>
<body>
  <div class="center">用内容撑开盒子</div>
</body>
</html>
运行案例 点击 "运行案例" 可查看在线运行效果

运行结果:
图片描述

估计大多数人都不太熟悉这个网格布局,它有些类似于表格布局,但比表格布局更加强大。

如果同学们对Grid不是很熟悉可以参考 CSS3 Grid 布局

还有很多人担心 Grid 的兼容性:
图片描述

其实可以看到绝大部分浏览器都已经支持了,即使是最被吐槽的 IE 浏览器,也可以通过增加 -ms-前缀来进行支持。
例如:display: -ms-grid;

3. 小结

Grid 布局是近些年来逐渐兴起的一种布局方式,它的功能十分强大。

用它可以轻松的实现响应式布局,以前要很多行代码很多行判断的复杂布局,在掌握了 Grid 之后也都不在话下。