站長資訊網
        最全最豐富的資訊網站

        css實現元素垂直居中顯示的7種方式

        這篇文章主要介紹了css實現元素垂直居中顯示的7種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

        【一】知道居中元素的寬高

        absolute + 負margin

        代碼實現

        .wrapBox5{
        width: 300px;
        height: 300px;
        border:1px solid red;
        position: relative;
        }
        .wrapItem5{
        width: 100px;
        height: 50px;
        position: absolute;
        background:yellow;
        top: 50%;
        left:50%;
        margin-top: -25px;
        margin-left: -50px;
        }

        運行結果

        css實現元素垂直居中顯示的7種方式

         

        absolute + margin auto

        代碼實現

        .wrapBox{
        width: 300px;
        height: 300px;
        background: yellow;
        position: relative;
        }
        .wrapItem{
        width: 100px;
        height: 50px;
        background:green;
        display: inline-block;
        position: absolute;
        top: 0px;
        bottom:0px;
        left: 0px;
        right: 0px;
        margin:auto;
        }

        css實現元素垂直居中顯示的7種方式

         

        absolute + calc

        代碼實現

        .wrapBox6{
        width: 300px;
        height: 300px;
        border:1px solid green;
        position: relative;
        }
        .wrapItem6{
        width: 100px;
        height: 50px;
        position: absolute;
        background:yellow;
        top: calc(50% – 25px);
        left:calc(50% – 50px);
        }

        運行結果

        css實現元素垂直居中顯示的7種方式

         

        三種對比總結

        當居中元素知道寬高的時候,設置居中的方式比較簡單單一。三種方法的本質是一樣的,都是對居中元素進行絕對定位,在定位到上50%,左50%后再拉回居中元素的一半寬高實現真正的居中。三種方式的區別就在于拉回元素本身寬高的方式不同。

        【二】居中元素的寬高未知

        absolute + transform

        代碼實現

        .wrapBox{
        width: 300px;
        height: 300px;
        background:#ddd;
        position: relative;
        }
        .wrapItem{
        width: 100px;
        height: 50px;
        background:green;
        position: absolute;
        top: 50%;
        left:50%;
        transform: translate(-50% , -50%);
        }

        運行結果

        css實現元素垂直居中顯示的7種方式

         

        原理

        原理類似于已知寬高的實現方式,只不過當前居中元素寬高未知,所以需要自動獲取當前居中元素的寬高。translate屬性正好實現了該功能。

        優缺點

        優點:自動計算本身的寬高

        缺點:如果同時使用transform的其他屬性會產生相互影響。

        所以:在不使用transform的其他屬性時推薦使用該方式

        flex布局

        .wrapBox2{
        width: 300px;
        height: 300px;
        background: blue;
        display: flex;
        justify-content: center;
        align-items: center;
        }
        /*注意:即使不設置子元素為行塊元素也不會獨占一層*/
        .wrapItem2{
        width: 100px;
        height: 50px;
        background:green;
        }

        運行結果

        css實現元素垂直居中顯示的7種方式

         

        原理

        將父級元素設置為流式布局,根據flex布局的屬性特性,設置子元素居中。

        優缺點

        優點:flex布局靈活,不需要對子元素進行任何的設置

        缺點:具有兼容性。子元素的float、clear、position等無法使用,如果同時具有其他布局,容易產生影響。

        table-cell布局

        代碼實現

        .wrapBox3{
        width: 300px;
        height: 300px;
        background: yellow;
        display: table-cell;
        vertical-align: middle;
        text-align: center;
        }
        .wrapItem3{
        width: 100px;
        height: 50px;
        background:green;
        display: inline-block;
        }

        運行結果

        css實現元素垂直居中顯示的7種方式

        原理

        根據table的vertical-align屬性,可以在表格元素內設置元素居中,再根據text-align設置水平居中

        table元素

        代碼實現

        .tableBox{
        border:2px solid yellow;
        width: 300px;
        height: 300px;
        }
        .tableBox table{
        width:100%;
        height:100%;
        }
        .centerWrap{
        text-align: center;
        vertical-align: middle;
        }
        .centerItem{
        display: inline-block;
        background:pink;
        }

         

        運行結果

        css實現元素垂直居中顯示的7種方式

        總結

        使用table標簽進行布局,主要還是使用了vertical-align屬性和text-align屬性。但是相對于上一種方式,使用table標簽會產生大量的冗余代碼。不推薦使用

        文章來源:腳本之家,原文鏈接:https://www.jb51.net/css/743771.html

        css實現元素垂直居中顯示的7種方式

        申請創業報道,分享創業好點子。點擊此處,共同探討創業新機遇!

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 日韩精品无码人妻一区二区三区| 日韩一区二区三区在线精品| 国产精品亚洲综合专区片高清久久久| 国产精品久久久久久久| 亚洲国产精品一区二区第四页 | 在线精品亚洲| 99精品福利国产在线| 99精品视频在线观看免费| 日韩精品人妻系列无码专区| 日韩三级精品| 国产亚洲美女精品久久久| 久久精品国产福利国产秒| 国产成人精品无码一区二区| 亚洲精品欧美二区三区中文字幕| 999久久久免费精品国产| 日韩精品久久久久久免费| 亚洲а∨天堂久久精品9966| 久久久久国产精品三级网| 国产乱码伦精品一区二区三区麻豆| 亚洲国产精品日韩专区AV| 国产一级精品高清一级毛片| 国产高清精品在线| 四虎国产精品免费观看| 精品国产欧美另类一区| 2021久久精品国产99国产精品| 久久精品不卡| 国产精品一区二区三区99| wwwvr高清亚洲精品二区| 秋霞午夜鲁丝片午夜精品久| 国产精品一二区| 国产精品一级香蕉一区| 国产小视频国产精品| 9久久9久久精品| 国产AV无码专区亚洲精品| 99久久久精品| 精品999在线| 国产成人精品cao在线| 国产一区二区精品久久岳| 国产午夜亚洲精品理论片不卡| 国产精品无码一区二区三级| 久久国产亚洲精品无码|