關於CSS的垂直居中

2021-07-26 15:14:03 字數 1985 閱讀 2735

第一次寫,有點緊張

在頁面中,垂直居中是個老大難的問題,方法各種各樣,我這邊列舉了我最喜歡的方便的幾個方法:

1.父元素高度一定,單行文字垂直居中

html部分

我是單行內容

css部分:

.outside 

/* 單行 */

這個最簡單,單行文字,父元素高度一定,直接設定line-height = 父元素高度就行了。

2.父元素高度一定,多行文字居中

html部分

這裡的文字用來做多行文字垂直居中對齊的測試。

這是第二行文字,您還可以再新增一行文字做測試!

css部分:

.align_box_2
這裡使用table-cell,使用vertical-align: middle來定位,像**一樣定位,也可以適用於垂直定位,詳細的講解可以戳這裡。

3.父元素高度不一定,子元素高度一定

這種情況也比較常見,方法很多人也肯定知道。

html部分:

我是內容,父元素的高度不一定,但是我的內容高度是不變的,要把我居中...

css部分:

.out-auto 

.out-auto .text

這種方法其實很巧妙,先是絕對定位,top值為50%,找到中間的垂直的基準線,在通過margin-top上移子元素高度的一半來達到垂直居中的效果,這種不管父元素高度怎麼變,只要子元素高度不變,定位一定沒問題,而且相容性比較好。

4.父元素高度不定,子元素高度不定

一般像這種情況也可能在實際中會遇到比較多,比如手機端預覽等等。

html部分

我的高度不定,我的父元素的高度也不定,但是要居中

css部分:

.out-auto 

.inside-auto

這個方法使用c3的transform屬性,原理與上一中絕對定位上移的原理一致,translatey(-50%)上移自身的一般高度,不過相容性有限,在不考慮低版本瀏覽器的情況下,這種方法真的是太太太好用了,我也一直使用這種方法,即節省**又效率高,pc移動都適用。

題外話:

在這裡我在推薦一種方法,那就是flex布局,這種布局常見於移動端,有很多沒見過的屬性。

html部分:

你好,我是flex布局

css部分:

flex布局很神奇很好用,我自己也還沒有完全理解,現在很多移動端的框架都在使用這個,我也要與時俱進才行

css 水平居中 垂直居中 水平垂直居中

一 水平居中 1 行內元素水平居中text align center 2 塊級元素水平居中margin 0 auto 3 多個塊狀元素的水平居中 實現多個水平排列的塊狀元素的水平居中,是將要水平排列的塊狀元素設為display inline block,然後在父級元素上設定text align ce...

css水平居中 垂直居中 水平垂直居中

css水平居中 垂直居中 水平垂直居中 水平居中 行內元素 block text align 塊級元素 方案一 分寬度定不定兩種情況 定寬度 margin 0 auto 作用 使盒子自己居中,意思是上下距離為0,auto就是左右自適應兩邊距離 不定寬度 設定子元素display inline blo...

關於CSS實現水平垂直居中

行內元素 1.text align center 對文字,按鈕等行內元素進行水平居中 2.line height 行高 當只有一行文字元素時,將line height設為行高可實現垂直居中 塊元素 3.margin 0 auto 對於有寬度的塊元素,設定margin 0 auto,相對于父元素水平居...