1.水平居中 (1)margin:0 auto;(常用) (2).parent{text-align:center;} .child{display:inline-block}(多元素水平居中) (3)display: flex; justify-content: center;
2.垂直居中 可参看: 垂直居中 (1)单行文本垂直居中:使用line-height; (2)垂直居中一张图片:使用line-height和vertical-align:middle; (3)块级元素垂直居中:
.parent{position:relative} .child{position:absolute;top:50%;transform:translate(0,-50%);} (4)绝对定位结合margin: .parent{position:relative} .child{position:absolute;top:0; bottom:0;margin:auto}, (5)利用position和负边距 .parent{position:relative} .child{position:absolute;top:50%;margin-top:负的元素自身高度的一半}。 (6)flex实现 .box { display: flex; align-items: center;} 3.水平垂直居中 (1) .center { position: absolute; top: 50%; left: 50%; -ms-transform: translate(-50%,-50%); -moz-transform: translate(-50%,-50%); -o-transform: translate(-50%,-50%); transform: translate(-50%,-50%); }(2)
.center { margin: auto; position: absolute; top: 0; left: 0; bottom: 0; right: 0; }(3)
.center { display: flex; justify-content: center; align-items: center; }具体可参考 translate与定位;8种居中
4.两列定宽,中间自适应 (1)圣杯布局 圣杯布局 (2)双飞翼布局 双飞翼布局 (3)flex布局 flex布局
5.左列定宽,右列自适应
(1)
.left{float:left;width:100px;} .right{margin-left:100px;}(2)
.parent{display:flex;}.left{width:100px;}.right{flex:1;} 6.多列等分 html结构如下所示 <div class="parent"> <div class="column">1</div> <div class="column">1</div> <div class="column">1</div> <div class="column">1</div> </div>(1)
.parent{margin-left:-20px}/*假设列之间的间距为20px*/ .column{float:left;width:25%;padding-left:20px;box-sizing:border-box;}(2)
.parent{display:flex;} .column{flex:1;} .column+.column{margin-left:20px;}7.等高列布局:等高列布局;
8.瀑布流布局:瀑布流布局
