如果想要元素左右对其的方法可以使用 float、flex、position
块级元素左右居中 margin 0 auto;
内联元素 父级元素 text-align center
而垂直水平居中呢?
1.position
html
<div class="center">test</div>
元素已知宽和高css
.center { background: red; width: 100px; height: 100px; position: absolute; top: 0; bottom: 0; left: 0; right: 0; margin: auto; } /* or */ .center { background: red; width: 100px; height: 100px; position: absolute; top: 50%; left: 50%; margin: -50px 0 0 -50px; }
元素宽高未知css
.center { color: red; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); }
2.flex布局
html
<div class="wrap"> <div class="item">test</div> </div>
css
.wrap { width: 100%; height: 100vh; display: flex; align-items: center; justify-content: center; } .item { color: red; }
3.使用伪类
html
<div class="wrap"> <div class="item">test</div> </div>
css
.wrap { width: 100%; height: 100%; background-color: #009ef4; text-align: center; position: absolute; top: 0; left: 0; } .wrap:after { display: inline-block; content: ''; width: 0; height: 100%; vertical-align: middle; } .item { color: red; display: inline-block; vertical-align: middle; }
4.使用表格
html
<div class="wrap"> <div class="item"> test </div> </div>
css
.wrap { width: 100%; height: 100vh; display: table; } .item { color: #F00; display: table-cell; vertical-align: middle; text-align: center; }