<
css布局 水平/垂直/水平垂直居中
>
上一篇

跑跑 逮虾户
下一篇

ES7 新增内容简介
常用的css水平居中布局方式

水平居中

  1. 行内元素: 给父元素设置 text-align:center 即可 例如
  2. 块元素: 给该元素设置 margin:0 auto即可, 如果有absolute参考第七条
  3. 元素包含 float:left 属性, 为了让子元素水平居中, 则可让父元素宽度设置为fit-content,并且配合margin:
    .parent{
     width:fit-content;
     margin:0 auto;
    }
    
  4. flex:
    .son{
     display: flex;
     justify-content: center;
    }
    
  5. transform属性:
    .son{
     position:absolute;
       left:50%;
       transform:translate(-50%,0);
    }
    
  6. absolute 绝对定位: 设置父元素相对定位(position:relative)
    .son{
     position:absolute;
     width:固定;
     left:50%;
     margin-left:-0.5宽度;
    }
    
  7. absolute 绝对定位: 设置父元素相对定位(position:relative)
    .son{
     position:absolute;
     width:固定;
     left:0;
     right:0;
     margin:0 auto;
    }
    

垂直居中

  1. 单行文本, 则可设 line-height 等于父元素高度
  2. 若元素是行内块级元素, 基本思想是使用display: inline-block, vertical-align: middle和一个伪元素让内容块处于容器中央.
.parent::after, .son{
    display:inline-block;
    vertical-align:middle;
}
.parent::after{
    content:'';
    height:100%;
}
  1. flex:
    .parent{
     display:flex;
     align-items: center;
    }
    
  2. transform: 设置父元素相对定位(position:relative)
    .son{
     position:absolute;
     top:50%;
     transform: translate(0,-50%);
    }
    
  3. absolute 绝对定位: 设置父元素相对定位(position:relative)
    .son{
     position:absolute;
     top:50%;
     height:固定;
     margin-top:-0.5高度;
    }
    
  4. absolute 绝对定位: 设置父元素相对定位(position:relative)
    .son{
     position:absolute;
     height: 固定;
     top: 0;
     bottom: 0;
     margin: auto 0;
    }
    

水平垂直居中

方法1:绝对定位与负边距实现(已知高度宽度)

 #container {
      position: relative;
    }
 #center {
      position: absolute;
      top: 50%;
      left: 50%;
      margin: -50px 0 0 -50px;
    }

方法2:绝对定位与margin:auto(已知高度宽度)

方法3:绝对定位+CSS3(未知元素的高宽)

  #container {
      position: relative;
    }
  #center {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
    }

方法4:flex布局

方法5:flex/grid与margin:auto(最简单写法)

Top
Foot