CSS常⽤⽔平垂直居中的⼏种⽅法CSS⽔平垂直居中
为⽅便理解,欢迎查看线上效果,
⼀、利⽤margin:auto
元素有宽度和⾼度时,利⽤margin:auto设置元素⽔平垂直居中:
HTML代码如下:
<div class="div1">
<div class="center"></div>
</div>
CSS代码如下:
.div1{
background-color: #eee;
width: 200px;
height: 200px;
position: relative;
}
.div1 .center{
width: 50px;
height: 50px;
background-color: forestgreen;
position: absolute;
margin: auto;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
⼆、利⽤position: absolute
HTML代码:
<div class="div2">
<div class="center"></div>
</div>
当已知元素宽度和⾼度时,可以设置position: absolute和margin为负的宽⾼的⼀半,CSS代码如下:
position: relative;
margin-top: 20px;
}
.div2 .center{
width: 50px;
height: 50px;
background-color:rgb(34, 71, 139);
position: absolute;
left: 50%;
top: 50%;
margin-left: -25px;
margin-top: -25px;
}
当已知元素宽度和⾼度时,也可以利⽤calc计算属性设置top和left,CSS代码如下:
.center{
width: 50px;
height: 50px;
background-color:rgb(34, 71, 139);
position: absolute;
left:calc(50% - 25px);
top:calc(50% - 25px);
}
当元素宽度和⾼度未知时,可以设置position: absolute和transform: translate(-50%, -50%),CSS代码如下:
.center{
width: 50px;
height: 50px;
background-color:rgb(34, 71, 139);
position: absolute;
left: 50%;
top: 50%;
transform:translate(-50%, -50%);
}
实现效果:
三、弹性盒⼦
通过为其⽗元素设置display: flex来实现居中。
HTML代码如下:
<div class="div4">
<div class="center"></div>
</div>
CSS代码如下:
position: relative;
margin-top: 20px;
display: flex;
justify-content: center;
align-items: center;
}
.div4 .center{
width: 50px;
height: 50px;
background-color:rgb(240, 248, 166);
}
实现效果:
四、利⽤⽔平对齐和⾏⾼
设置text-align 和 line-height 实现单⾏⽂本⽔平垂直居中。
HTML代码如下:
<div class="div5">
<p class="center">我要居中</p>
</div>
CSS代码如下:
.div5{
background-color: #eee;
width: 200px;
height: 200px;
margin-top: 20px;
}
.div5 .center{
text-align: center;
line-height: 200px;
}
实现效果:
五、grid
HTML代码如下:
<div class="div6">
<p class="center">我要居中</p>
</div>
在⽹格项⽬中设置justify-self、align-self或者margin: auto,CSS代码如下:
margin-top: 20px;
css设置文字垂直居中display: grid;
}
.div6 .center{
align-self: center;
justify-self: center;
/* margin: auto; */
}
在⽹格容器上设置justify-items、align-items或justify-content、align-content,CSS代码如下:
.
div6{
background-color: #eee;
width: 200px;
height: 200px;
margin-top: 20px;
display: grid;
align-items: center;
justify-items: center;
/* align-content: center;
justify-content: center; */
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。