代码实例:
<!DOCTYPE html>
<html>
<head>
<title>测试</title>
<meta charset="utf-8">
<style type="text/css">
.container{
display: table;
width: 300px;
height: 200px;
background-color: #ddd;
}
.container .item{
display: table-cell;
vertical-align: middle;
padding: 0 20px;
}
</style>
</head>
<body>
<div class="container">
<div class="item">无限长度的元素,此元素长度如果超过设定的width值,会自动换行</div>
</div>
</body>
</html>
页面展示效果
当item内容很长时,会自动换行,但是在垂直方向上一直保持居中
当item内容不够长时,在水平方向上不能保证居中,但是,垂直是居中的:
注意几点:
父元素container:
- 宽高要设定
- display: table是必须设定的
自元素item:
- 设定宽度是无效,内容足够长时在水平上他会撑满父容器宽度;内容不够长时,靠左排列;
- 在设定display: table-cell的同时,一定需要设置:vertical-align:middle
- 设置margin值也是无效的,只能设置padding值