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

2021-08-10 21:26:43 字數 1813 閱讀 4514

一、水平居中

1、行內元素水平居中text-align :center

2、塊級元素水平居中margin:0  auto 

3、多個塊狀元素的水平居中    

實現多個水平排列的塊狀元素的水平居中,是將要水平排列的塊狀元素設為display:inline-block,然後在父級元素上設定text-align:center,達到與上面的行內元素的水平居中一樣的效果。

二、垂直居中

1、行內或類行內元素垂直居中

對於單行行內或者文字元素,只需為它們新增等值的 padding-top 和 padding-bottom 就可以實現垂直居中;

對於多行文字,同樣可以使用等值 padding-top 和 padding-bottom 的方式實現垂直居中。如果在使用過程中發現這種方法沒見效,那麼可以通過 css 為文字設定乙個類似 table-cell的父級容器,然後使用vertical-align屬性實現垂直居中;

可以使用 flexbox 實現垂直居中,對於父級容器為 display: flex 的元素來說,它的每乙個子元素都是垂直居中的;

2、塊級元素

已知元素的高度

無法獲知元素的具體高度是非常常見的一種狀況,比如:視區寬度變化,會觸發布局重繪,從而改變高度;對文字施加不同的樣式會改變高度;文字的內容量不同會改變高度;當寬度變化時,對於寬高比例固定的元素(比如),也會自動調整高度……  如果我們知道元素的高度,可以這樣來實現垂直居中: 

.parent  

.child

未知元素的高度

如果不知道元素的高度,那麼就需要先將元素定位到容器的中心位置,然後使用 transform 的 translate 屬性,將元素的中心和父容器的中心重合,從而實現垂直居中: 

.parent  

.child

三、水平垂直居中

寬高固定元素

設定父級容器為相對定位的容器,設定子元素絕對定位的位置 position: absolute; top: 50%; left: 50%,最後使用負向 margin 實現水平和垂直居中,margin 的值為寬高(具體的寬高需要根據實際情況計算 padding)的一半。  

.parent  

.child

寬高不固定元素

如果無法獲取確定的寬高,同樣需要設定父級容器為相對定位的容器,設定子元素絕對定位的位置 position: absolute; top: 50%; left: 50%。不同的是,接下來需要使用 transform: translate(-50%, -50%); 實現垂直居中:

.parent

.child    

flexbox

使用 flexbox 實現水平和垂直居中,只需使用兩條居中屬性即可:

.parent  

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

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

css實現水平居中 垂直居中 垂直水平居中布局

1.只需要把行內元素包裹在乙個屬性display為block的父層元素中,並為父層元素新增如下屬性即可 parent2.塊狀元素解決方案 item3.多個塊狀元素解決方案將元素的display屬性設定為inline block,並且把父元素的text align屬性設定為center即可 paren...

居中 水平 垂直 水平垂直

將子元素的display設定為inline block,使子元素變成行內元素 這種方法的不足之處在於,子元素的text align繼承了父元素的center,文字也居中顯示,所以需要在子元素中設定text align left 思路二 在本身元素設定margin 0 auto實現塊級元素水平居中 若...