CSS居中問題的各種解決方案

水平居中

行內(nèi)元素

把行內(nèi)元素嵌套在一個(gè)DIV中,并且在DIV中設(shè)置以下樣式

div {
text-align: center;
}

塊級(jí)元素

對(duì)于定寬的塊級(jí)元素,我們要設(shè)置起margin-top,margin-right 為auto

div {
margin: 0 auto;
}

多個(gè)塊級(jí)元素(inline-block)

多個(gè)塊級(jí)元素,我們將其display設(shè)置為inline-block;然后將父級(jí)元素設(shè)置一下屬性

ul {
text-align: center;
}
ul li {
display: inline-block;
}

多個(gè)塊級(jí)元素(flex)

設(shè)置需要水平居中的塊狀元素的父元素display為flex ,并且justify-content屬性為center即可

ul {
display: flex;
justify-content: center;
}
ul li {
}

垂直居中

單行行內(nèi)元素

將行內(nèi)元素的height和line-height設(shè)置為一致即可

div {
height: 200px;
line-height: 200px;
}

多行行內(nèi)元素

如果行內(nèi)元素文字過多產(chǎn)生多行,則在父級(jí)元素設(shè)置display: table-cell;vertical-align:middle;

div {
width: 300px;
height: 300px;
display: table-cell;
vertical-align: middle;
}

已知高度的塊級(jí)元素

將塊級(jí)元素設(shè)置絕對(duì)定位,top為50%,margin-top:-height/2

div {
position: absolute;
height: 100px;
top: 50%;
margin-top: -50px;
padding: 0;
}

未知高度的塊級(jí)元素

使用CSS translate,將塊級(jí)元素設(shè)置絕對(duì)定位,top為50%,transform: translateY(-50%);

div{
position: absolute;
top: 50%;
padding: 0;
-webkit-transform: translateY(-50%);
-moz-transform: translateY(-50%);
transform: translateY(-50%);
}

水平垂直居中

已知高度、寬度的元素

將塊級(jí)元素設(shè)置絕對(duì)定位,top為50%,left:50%;margin-top:-height/2;margin-left:-width/2

div{
position: absolute;
width: 150px;
height: 150px;
top: 50%;
left: 50%;
margin-top: -75px;
margin-left: -75px;
}

已知高度、寬度的元素(flex)

給父級(jí)使用flex布局

div{
display: flex;
justify-content: center;
align-items: center;
}

未知高度、寬度的元素

使用CSS translate

div{
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%,-50%);
-moz-transform: translate(-50%,-50%);
transform: translate(-50%,-50%);
}

小結(jié)

CSS設(shè)置居中是我們經(jīng)常遇到的,本文總結(jié)了遇到的各種居中情況,并提供了一種設(shè)置方式,有的情況使用flex(兼容ie10+),有的使用了transform(兼容ie9+),如果你有更多的方法,歡迎在下方留言。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,137評(píng)論 1 92
  • 收聽音頻,戳鏈接,舊號(hào)itclan已暫停使用,歡迎關(guān)注微信itclanCoder公眾號(hào)可收聽更多音頻 前言 關(guān)于網(wǎng)...
    itclanCoder閱讀 8,349評(píng)論 3 30
  • 各種純css圖標(biāo) CSS3可以實(shí)現(xiàn)很多漂亮的圖形,我收集了32種圖形,在下面列出。直接用CSS3畫出這些圖形,要比...
    劍殘閱讀 9,979評(píng)論 0 8
  • 太陽(yáng)落山以后醒來(lái) 她擁抱落筆路上一個(gè)接一個(gè)的太陽(yáng) 海風(fēng)吹來(lái)的時(shí)候 她舔著干燥的嘴唇,留戀一絲咸味 清晨時(shí)她已被灼得...
    咖啡罐不見了閱讀 788評(píng)論 2 4

友情鏈接更多精彩內(nèi)容