1.dispaly:table-cellcss
适用于固定宽高,且表现为行内元素,如不固定宽高会由内部元素的宽高决定外部的宽高。web
<div class="text1">
<span>这是一行汉字这是一段汉字这是一大段汉字这是一行汉字这是一段汉字这是一大段汉字</span>
</div>
.text1 {
width: 300px;
height: 300px;
border: 1px solid #000;
display: table-cell;
vertical-align: middle;
text-align: center;
}复制代码
2.position:absolute浏览器
适用于不固定宽高,但必须有内外层的层级结构,内层脱离文档流。top是相对父元素的位移,而translate是相对元素自己的位移。flex
<div class="text2">
<span>这是一行汉字这是一段汉字这是一大段汉字这是一行汉字这是一段汉字这是一大段汉字</span>
</div>
.text2 {
width: 50%;
height: 30%;
border: 1px solid #000;
position: relative;
}
.text2 span {
position: absolute;
top: 50%;
text-align: center;
-webkit-transform: translateY(-50%);
-moz-transform: translateY(-50%);
-ms-transform: translateY(-50%);
transform: translateY(-50%);
}复制代码
3.display:flexspa
不用固定宽高,浏览器支持有限,ie 11+。justify-content
属性用于定义如何沿着主轴方向排列子容器。flex-start:起始端对齐,还有flex-end、center、space-around、space-between。align-items
属性用于定义如何沿着交叉轴方向分配子容器的间距。.net
<div class="text3">
<span>这是一行汉字这是一段汉字这是一大段汉字这是一行汉字这是一段汉字这是一大段汉字</span>
</div>
.text3 {
width: 50%;
height: 50%;
border: 1px solid #000;
display: flex;
justify-content: center;
align-items: center;
}复制代码
flex参考连接:blog.csdn.net/aliguagua/a…code