居中布局-網(wǎng)易云課堂微專業(yè)-頁(yè)面架構(gòu)-布局解決方案

水平布局

要求:
里外容器的寬度都是不一定的

<div class="parent">
    <div class="child">DEMO</div>
</div>

Methods ①:inline-black + text-align

優(yōu)點(diǎn):兼容性比較好,兼容到IE6\7瀏覽器
缺點(diǎn):child會(huì)繼承父元素屬性,內(nèi)容也會(huì)居中,在.child中添加text-align:left

.child{
    display: inline-block;  //特點(diǎn):寬度根據(jù)內(nèi)容
}
.parent{
    text-align: center; //特點(diǎn):對(duì)inline元素起作用
}

Methods ②:table + margin

優(yōu)點(diǎn):只需要對(duì)自己設(shè)置,IE8以上瀏覽器都是支持的
兼容IE6\7:結(jié)構(gòu)換成table

.child{
    display: table; //特點(diǎn):非常像black元素,區(qū)別寬度跟著內(nèi)容走
    margin: 0 auto;
}

Methods ③:absolute + transform

優(yōu)點(diǎn):居中的元素不會(huì)對(duì)其他元素產(chǎn)生影響
缺點(diǎn):IE6/7/8兼容性不支持,需要加入一些私有前綴

.parent{
    position: relative; //父容器設(shè)置相對(duì)定位,編程參照物
}
.child{
    position: absolute; //特點(diǎn);寬度由內(nèi)容決定
    left: 50%;
    transform: translateX(-50%);
}

Methods ④:flex + justify-content

優(yōu)點(diǎn):只需要設(shè)置parent節(jié)點(diǎn)
缺點(diǎn):flex,IE6/7/8不兼容

Methods 1:
.parent{
    display: flex;   //特點(diǎn):寬度就變成了內(nèi)容的寬度
    justify-content: center;
}

Methods 2:
.parent{
    display: flex;  
}
.child{
    margin: 0 auto;
}

垂直居中

要求:
里外容器的寬度都是不一定的

<div class="parent">
    <div class="child">DEMO</div>
</div>

Methods ①:table-cell + vertical-align

優(yōu)點(diǎn):兼容性比較好,兼容到IE8以上瀏覽器
兼容IE6\7:結(jié)構(gòu)換成table

.parent{
    display: table-cell;    
    vertical-align: middle;
}

Methods ②:absolute + transform

優(yōu)點(diǎn):居中的元素不會(huì)對(duì)其他元素產(chǎn)生影響
缺點(diǎn):IE6/7/8兼容性不支持,需要加入一些私有前綴

.parent{
    position: relative; //父容器設(shè)置相對(duì)定位,編程參照物
}
.child{
    position: absolute; //特點(diǎn);寬度由內(nèi)容決定
    top: 50%;
    transform: translateY(-50%);
}

Methods ③:flex + align-items

優(yōu)點(diǎn):只需要設(shè)置parent節(jié)點(diǎn)
缺點(diǎn):flex,IE6/7/8不兼容

Methods 1:
.parent{
    display: flex;      //child會(huì)撐滿整個(gè)容器
    align-items: center;
}

Methods 2:
.parent{
    display: flex;  
}
.child{
    margin: 0 auto;
}

居中(水平+垂直)

要求:
里外容器的寬度都是不一定的

Methods ①:inline-block + text-align + table-cell + vertical-align

優(yōu)點(diǎn):兼容性比較高
缺點(diǎn):table-cell在低版本不支持,可以換table結(jié)構(gòu)

.parent{
    text-align: center; //水平居中
    display: table-cell;     //垂直居中
    vertical-align: middle; //垂直居中
}
.child{
    display: inline-block; //水平居中
}

Methods ②:absolute + transform

優(yōu)點(diǎn):居中的元素不會(huì)對(duì)其他元素產(chǎn)生影響
缺點(diǎn):IE6/7/8兼容性不支持,需要加入一些私有前綴

.parent{
    position: relative; //父容器設(shè)置相對(duì)定位,編程參照物
}
.child{
    position: absolute; //特點(diǎn);寬度由內(nèi)容決定
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
}

Methods ③:flex + justify-content + align-items

優(yōu)點(diǎn):只需要設(shè)置parent節(jié)點(diǎn)
缺點(diǎn):flex,IE6/7/8不兼容

Methods 1:
.parent{
    display: flex;   //特點(diǎn):寬度就變成自身的寬度,高度撐滿
    justify-content: center;
    align-items:center
}

總結(jié):

所列的解決方案不一定是全的,做解決方案大致的思路:
首先,需要了解CSS里面很多屬性它的值,它的一些特性
然后,對(duì)問(wèn)題進(jìn)行分解
最后,把這些特性與分解出來(lái)的問(wèn)題做練習(xí),這個(gè)問(wèn)題可以用那些特性去實(shí)現(xiàn)

最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,118評(píng)論 1 92
  • ⑴定寬與自適應(yīng) 一列定寬 + 一列自適應(yīng) Methods ①:float + margin 優(yōu)點(diǎn):非常容易理解缺點(diǎn)...
    夜月孤鴻閱讀 721評(píng)論 0 0
  • 1. CSS Reset 瀏覽器對(duì)標(biāo)簽進(jìn)行樣式設(shè)置,不同瀏覽器默認(rèn)樣式有差異 CSS Reset 全局定義樣式,通...
    hyt222閱讀 423評(píng)論 0 0
  • 收聽(tīng)音頻,戳鏈接,舊號(hào)itclan已暫停使用,歡迎關(guān)注微信itclanCoder公眾號(hào)可收聽(tīng)更多音頻 前言 關(guān)于網(wǎng)...
    itclanCoder閱讀 8,347評(píng)論 3 30
  • 雲(yún)舍上錦裡。天成去雕飾,仙嚮古寨。珙桐芳蕊,地落湖光青魅。深閨桃源晚識(shí)。翠芷堤,黃牯山密。碧慈溪。馳舟杖楫,鳳鴛驚...
    弘湉閱讀 248評(píng)論 0 0

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