方法1:父級(jí)元素不定高肛根,設(shè)置父及元素display:table;子元素設(shè)置display:table-cell;vertical-align:center荠列。
方法2:父級(jí)元素定高,設(shè)置子元素為display:inline-block;vertical-align:center;模擬單行元素的垂直居中罚拟。
方法3:flex布局琅捏,有兼容性,ie9一下不支持
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.bg_box {
width: 300px;
height: 300px;
margin-top: 20px;
background-color: #BBBBBB;
border-radius: 100%;
}
/*方法一*/
.span_box {
display: table;
}
.words_span {
display: table-cell;
vertical-align: middle;
}
.bg_box {
width: 300px;
height: 300px;
margin-top: 20px;
background-color: #BBBBBB;
}
/*方法二*/
.p_box {
line-height: 300px;
}
.words_p {
display: inline-block;
line-height: 20px;
/*單獨(dú)給子元素設(shè)置行高肋坚,覆蓋父級(jí)元素的行高*/
vertical-align: middle;
/*基線居中對(duì)齊*/
}
/*方法三*/
.box{display:flex;display:-ms-flexbox;width:200px;height:200px;border:1px dotted #ccc;justify-content:center;align-items:center;}
.box span{display:inline-block;width:100%;padding:5px;}
</style>
</head>
<body>
<div class="span_box bg_box">
<span class="words_span">
方法一:高度不固定,父元素使用display:table和子元素使用display:table-cell屬性來模擬表格肃廓,子元素設(shè)置vertical-align:middle即可垂直居中
</span>
</div>
<div class="p_box bg_box">
<p class="words_p">
方法二:高度固定智厌,對(duì)子元素設(shè)置display:inline-block屬性,使其轉(zhuǎn)化成行內(nèi)塊元素盲赊,模擬成單行文本铣鹏。父元素設(shè)置對(duì)應(yīng)的height和line-height。對(duì)子元素設(shè)置vertical-align:middle屬性哀蘑,使其基線對(duì)齊诚卸。添加line-height屬性,覆蓋繼承自父元素的行高绘迁。缺點(diǎn):文本的高度不能超過外部盒子的高度合溺。
</p>
</div>
<div class="box">
<span>方法三:使用flex布局實(shí)現(xiàn)多行文字垂直居中,不兼容ie9及一下瀏覽器</span>
</div>
</body>
</html>