首頁  >  文章  >  web前端  >  css怎麼實現不定寬水平居中

css怎麼實現不定寬水平居中

青灯夜游
青灯夜游原創
2020-12-21 15:56:412251瀏覽

方法:1、利用flex佈局,將ustify-content和align-items屬性都設定為center來實現居中;2、利用transform和position屬性來實現居中;3、使用table-cell,利用table的單元格居中效果。

css怎麼實現不定寬水平居中

本教學操作環境:Windows7系統、css3版本,此方法適用於所有品牌電腦。

推薦:《css影片教學

css實作不定寬水平居中

方法1:利用flex

大家的第一反應,可能就是flex 了。因為它的寫法夠簡單直觀,相容性也沒問題。是手機端居中方式的首選。

<div class="wrapper flex-center">
    <p>horizontal and vertical</p>
</div>
.wrapper {
    width: 300px;
    height: 300px;
    border: 1px solid #ccc;
}
.flex-center {
    display: flex;
    justify-content: center;
    align-items: center;
}

利用到了 2 個關鍵屬性:justify-content 和 align-items,都設定為 center,即可實現居中。

要注意的是,一定要把這裡的 flex-center 掛在父級元素,才能讓其中 唯一的 子元素居中。

方法2:利用transform position

這個組合,常用於圖片的居中顯示。

<div class="wrapper">
    <img src="test.png">
</div>
.wrapper {
    width: 300px;
    height: 300px;
    border: 1px solid #ccc;
    position: relative;
}
.wrapper > img {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

當然,也可以將父元素 wrapper 的相對定位,移入子元素 img 中,替換掉絕對定位。效果是一樣的。

方法3:table-cell

利用 table 的單元格居中效果展示。與 flex 一樣,需要寫在父級元素上。

<div class="wrapper">
    <p>horizontal and vertical</p>
</div>
.wrapper {
    width: 300px;
    height: 300px;
    border: 1px solid #ccc;
    display: table-cell;
    text-align: center;
    vertical-align: middle;
}

方法4:grid

就像表格一樣,網格佈局讓我們能夠按行或列來對齊元素。然而在佈局上,網格比表格更可能做到或更簡單。

<div class="wrapper">
    <p>horizontal and vertical</p>
</div>
.wrapper {
    width: 300px;
    height: 300px;
    border: 1px solid #ccc;
    display: grid;
}
.wrapper > p {
    align-self: center;
    justify-self: center;
}

但它在相容性上不如 flex,特別是 IE 瀏覽器,只支援 IE10 以上。

更多程式相關知識,請造訪:程式設計入門! !

以上是css怎麼實現不定寬水平居中的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn