补充
元素自身要实现垂直居中
position:absolute;
top:0px;
bottom: 0px;
left:0px;
right:0px;
margin:auto;
background: #333;
width:px2rem(48);
height: px2rem(48);
行内元素
居中
text-align:center //父级元素
块状元素
定宽
居中
margin:auto //要居中的元素
不定宽
居中
- 为不定宽的元素包裹table标签
(table将元素转为定宽元素)
table{
margin:auto
}
<table>
<tbody>
<tr><td>
<ul>
<li>你好啊哈哈哈</li>
<li>你好啊哈哈哈</li>
<li>你好啊哈哈哈</li>
</ul>
</td></tr>
</tbody>
</table>
- 将不定宽的块级元素改为行内元素
.container ul{
display:inline;
}
.container{
text-aligin:center
}
<div class="container">
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
</div>
- 通过给父元素设置 float,然后给父元素设置 position:relative 和 left:50%,子元素设置 position:relative 和 left: -50% 来实现水平居中
- 无需添加格外元素实现
//需要居中的元素
position:absolute;
left:50%;
transform:translateX(-50%)
5.flex布局
//父元素
.wrapper{
display:flex;
justify-content:center;
}
垂直居中
1.父元素高度确定的单行文本
line-height:父元素高度
2.父元素高度确定的多行文本
用table包裹文本,table自带vertical-align属性
table{
height:父元素高; //垂直
margin:auto //水平
}
3.内联块状元素垂直居中
直接用vertical-align:middle
4.flex布局
div{
display:flex;
justify-content: center; /* 水平居中 */
align-items: center; /* 垂直居中 */
}