實現(xiàn)CSS水平居中多種方法

水平居中

? ??1.1 display: inline-block

? ??????在塊級父容器中讓行內(nèi)元素或者類行內(nèi)元素居中,只需使用 text-align: center,

這種方法可以讓 inline/inline-block/inline-table/inline/flex 居中

? ? ? ? 例子:

? ??????????????.child {

????????????????????? display:inline-block;

? ????????????????????/*子元素文字會繼承居中,因此要在上面寫上向左邊居中*/

? ????????????????????text-align:left;

????????????????}

????????????????.parent {

????????????????????? text-align:center;

? ? ? ? ? ? ? ? ? }

? ??1.2 display:table

? ??????table 元素的寬度也是跟著內(nèi)容走,居中的時候加上 margin 即可。兼容IE8。

如果不設(shè)置成table,設(shè)置成別的塊級元素也可以,但是要強調(diào)設(shè)置寬度width,不然會拉伸成父元素的寬度。(注意加上 width 這種方法拓展性不好,如果 child div 里面的內(nèi)容很長的話可能超過設(shè)置的 width 的寬度)

? ? ? ? 例子:

? ??????????????.child {

? ????????????????????display:table;

????????????????????? margin:0 auto;

????????????????}

? ?1.3 position: absolute?

? ??????absolute 元素的寬度默認也是由內(nèi)容決定

這種方法的優(yōu)點是居中的元素不會對其他元素產(chǎn)生影響 脫離正常流

? ? ? ? 例子:

? ??????????.parent {

????????????????? position:relative;

????????????}

????????????.child{

????????????????? position:absolute; /*參照物是父容器*/

????????????????? left:50%;

????????????????? transform:translateX(-50%); /*百分比的參照物是自身*/

? ???????????}

? ?1.4 dispaly: flex

? ??????只兼容IE10+

? ??????.parent {

????????????? display:flex;

? ????????????justify-content:center;

????????}

????????/*或者*/

????????.child{

????????????? margin:0 auto;

????????}

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

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

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