各類元素的水平垂直居中

一、水平居中

  1. 行內(nèi)元素:
    text-align: center
    適用元素:文字,鏈接,及其其它inline或者inline-*類型元素(inline-block,inline-table,inline-flex

  2. 塊級元素:
    對于塊狀元素(display:block)來說,我們需要將它的左右外邊距(即margin-left,margin-right)設(shè)置為auto,即可實現(xiàn)塊狀元素的居中

  3. 多個塊級元素:
    ① 元素:display: inline-block; 父元素text-align: center;
    將元素的display屬性設(shè)置為inline-block,并且把父元素的text-align屬性設(shè)置為center即可實現(xiàn)

② 使用flexbox:
父元素display:flex; justify-content: center;
只需要把待處理的塊狀元素的父元素添加屬性display:flexjustify-content:center即可

二、垂直居中

  1. 單個行內(nèi)元素:
    當(dāng)一個行內(nèi)元素,即inline,inline-*類型的元素需要居中的話,可以將它的heightline-height同時設(shè)置為父元素的高度即可實現(xiàn)垂直居中效果

  2. 多行行內(nèi)元素:
    組合使用display:table-cellvertical-align:middle屬性來定義需要居中的元素的父容器元素生成效果

  3. 已知高度的塊級元素:
    將待居中元素設(shè)置為絕對定位,并且設(shè)置margin-top為居中元素高度一半的負(fù)值

  4. 未知高度的塊級元素:

        .item{
        top: 50%;
        position: absolute;
        transform: translateY(-50%); /* 這里我們使用css3的transform來達(dá)到類似效果 */
        }
    

使用transform屬性來垂直移動來實現(xiàn)垂直居中。

三、水平垂直居中

  1. 已知高度和寬度的元素:
    設(shè)置元素定位為absolute,并且設(shè)置top,left絕對值為50%,margin-topmargin-left為元素高度一半的負(fù)值即可

  2. 未知高度和寬度的元素:

  • 類似的transform屬性來定義

        .item{
         position: absolute;
         top: 50%;
         left: 50%;
         transform: translate(-50%, -50%);
         }
    
  • 使用table-cell:
    在父元素中設(shè)置display: table-cell; vertical-align: middle; text-align:center;

  • 使用box(以WebKit為例,其它所需兼容再添。注意瀏覽器支持情況Firefox 、Safari、Opera 以及 Chrome )
    display: -webkit-box; -webkit-box-align: center; -webkit-box-pack: center;

  1. 使用flex布局實現(xiàn):
    在父元素設(shè)置display: flex; justify-content:center; align-items: center; /* 注意這里需要設(shè)置高度來查看垂直居中效果 */

(注意瀏覽器支持情況Firefox 、Safari、Opera 以及 Chrome )

*flex和box較適合移動端以及不需要考慮低版本瀏覽器的開發(fā)。

最后編輯于
?著作權(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)容