CSS垂直居中的七个办法
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">咱们</span>在编辑一个版面,<span style="color: black;">一般</span>都会用到水平居中和垂直居中来设计,而水平居中很好处理,不外乎<span style="color: black;">便是</span>设定margin:0 auto;或是text-align:center;,就<span style="color: black;">能够</span><span style="color: black;">容易</span><span style="color: black;">处理</span>掉水平居中的问题,但<span style="color: black;">始终</span><span style="color: black;">败兴</span>最麻烦对齐问题,都是“垂直居中”这个讨人厌的设定,以下将介绍七种单纯利用CSS垂直居中的方式。</p>
<h2 style="color: black; text-align: left; margin-bottom: 10px;">七种垂直居中的<span style="color: black;">办法</span></h2>设定行高(line-height)添加伪元素calc动态计算<span style="color: black;">运用</span>表格或假装表格transform绝对定位<span style="color: black;">运用</span>Flexbox<h2 style="color: black; text-align: left; margin-bottom: 10px;">设定行高(line-height)</h2>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">设定行高是垂直居中最简单的方式,适用于“单行”的“行内元素”(inline、inline-block),例如单行的标题,或是<span style="color: black;">已然</span>设为inline-block属性的div,若将line-height设成和高度<span style="color: black;">同样</span>的数值,则内容的行内元素就会被垂直居中,<span style="color: black;">由于</span>是行高,<span style="color: black;">因此</span>会在行内元素的上下都加上行高的1/2,<span style="color: black;">因此</span>就垂直居中了!<span style="color: black;">不外</span>由此就<span style="color: black;">能够</span>看出,<span style="color: black;">为何</span><span style="color: black;">必要</span>要单行的行内元素,<span style="color: black;">由于</span><span style="color: black;">倘若</span>多行,第二行与<span style="color: black;">第1</span>行的间距会变超大,就不是<span style="color: black;">咱们</span>所期望的效果了。CSS示例:</p>
<div style="color: black; text-align: left; margin-bottom: 10px;"><img src="https://pic1.zhimg.com/80/v2-7fcebe217dc284aa8c5b4dcc1c7fccdc_720w.webp" style="width: 50%; margin-bottom: 20px;"></div>
<div style="color: black; text-align: left; margin-bottom: 10px;">.div0{
width:200px;
height:150px;
border:1px solid #000;
line-height:150px;
text-align:center;
}
.redbox{
display:inline-block;
width:30px;
height:30px;
bac<span style="color: black;">公斤</span>round:#c00;
}</div>
<h2 style="color: black; text-align: left; margin-bottom: 10px;">添加伪元素(::before、::after)</h2>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">刚才</span><span style="color: black;">第1</span>种<span style="color: black;">办法</span>,虽然是最简单的<span style="color: black;">办法</span>(适用于单行标题),<span style="color: black;">不外</span><span style="color: black;">便是</span>只能单行,<span style="color: black;">因此</span><span style="color: black;">咱们</span><span style="color: black;">倘若</span>要让多行的元素<span style="color: black;">亦</span><span style="color: black;">能够</span>垂直居中,就<span style="color: black;">必要</span>要<span style="color: black;">运用</span>伪元素的方式。<span style="color: black;">这里</span>之前,先解释一下CSS里头vertical-align这个属性,这个属性虽然是垂直居中,<span style="color: black;">不外</span>却<span style="color: black;">指的是</span>在元素内的所有元素垂直位置互相居中,并不是相<span style="color: black;">针对</span>外框的高度垂直居中。(下面的CSS会<span style="color: black;">导致</span>这种样子的垂直居中)</p>
<div style="color: black; text-align: left; margin-bottom: 10px;"><img src="https://pic1.zhimg.com/80/v2-eababa762e8848f9de2b5733e6b333d4_720w.webp" style="width: 50%; margin-bottom: 20px;"></div>
<div style="color: black; text-align: left; margin-bottom: 10px;">.div0{
width:200px;
height:150px;
border:1px solid #000;
text-align:center;
}
.redbox{
width:30px;
height:30px;
bac<span style="color: black;">公斤</span>round:#c00;
display:inline-block;
vertical-align:middle;
}
.greenbox{
width:30px;
height:60px;
bac<span style="color: black;">公斤</span>round:#0c0;
display:inline-block;
vertical-align:middle;
}
.bluebox{
width:30</div>
感谢楼主的分享!我学到了很多。 你的见解真是独到,让我受益匪浅。 我完全赞同你的观点,思考很有深度。
页:
[1]