绝对定位 + 平移实现单列布局

1. 前言

平移是 CSS3 的属性,它可以按照自身尺寸的百分比来进行平移。

语法是:transform: translate(xx%);

2. 实例代码

实例演示
预览 复制
复制成功!
<!DOCTYPE html>
<html lang="en">
<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 { position: relative }

    .center {
      /* 绝对定位 */
      position: absolute;

      /* 左方为50% */
      left: 50%;

      /* 给个宽高方便查看 */
      width: 90%;
      height: 100%;

      /* 这个50%是相对于自身宽高而言的 */
      transform: translate(-50%);

      /* 白色背景 */
      background: white;
    }
  </style>
</head>
<body>
  <div class="center"></div>
</body>
</html>
运行案例 点击 "运行案例" 可查看在线运行效果

运行结果:

图片描述

3. 小结

只要涉及到绝对定位,就一定要记得在祖先元素上设置相对定位或其他定位。

不然的话可能不会按照你想要的方式去执行哦。

下一小节我们来讲解网格实现法。