要实现文本垂直居中和水平居中,可以采用以下几种方式:
1 利用margin:auto
当元素有宽度和高度时,可以利用margin:auto设置元素水平垂直居中。例如,HTML代码如下:
<div class="div1">
<div class="center">居中文本</div>
</div>
CSS代码如下:
.div1 {
position: relative;
width: 300px;
height: 300px;
border: 1px solid #000;
}
.center {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
width: 100px;
height: 50px;
}
2 利用position: absolute
利用position: absolute和top、bottom、left、right属性来实现文本的水平垂直居中。例如,HTML代码如下:
<div class="div2">
<div class="center">居中文本</div>
</div>
CSS代码如下:
.div2 {
position: relative;
width: 300px;
height: 300px;
border: 1px solid #000;
}
.center {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
3 利用display: flex
可以给父元素设置display: flex,并给子元素设置align-items和justify-content属性来实现文本的水平垂直居中。例如,HTML代码如下:
<div class="div3">
<div class="center">居中文本</div>
</div>
.div3 {
display: flex;
align-items: center;
justify-content: center;
width: 300px;
height: 300px;
border: 1px solid #000;
}
.center {
width: 100px;
height: 50px;
}
4 利用table实现
可以将元素设置为table布局,然后使用vertical-align属性来实现文本的垂直居中。例如,HTML代码如下:
<div class="div4">
<div class="table">
<div class="table-cell">居中文本</div>
</div>
</div>
CSS代码如下:
.div4 {
display: table;
width: 300px;
height: 300px;
border: 1px solid #000;
}
.table {
display: table-cell;
vertical-align: middle;
}
.table-cell {
width: 100px;
height: 50px;
}
以上是几种实现文本垂直居中和水平居中的方式,每种方式都有其适用的场景和优缺点。其中,利用margin:auto和position:absolute的方式需要知道元素的宽度和高度,适用于元素宽高固定的情况。利用display:flex的方式比较简单,但是兼容性不是很好。利用table的方式比较适用于多行文本的垂直居中。