css垂直居中的8種方式總結(jié)

注:以下demo都只是針對現(xiàn)代瀏覽器所做诸老,未兼容低版本的IE以及其他非主流瀏覽器楚昭。

11種實現(xiàn)方式如下:

1.使用絕對定位和負外邊距對塊級元素進行垂直居中
效果:

代碼:

這個方法兼容性不錯司倚,但是有一個小缺點:必須提前知道被居中塊級元素的尺寸祖能,否則無法準確實現(xiàn)垂直居中闲孤。

2.使用絕對定位和transform
代碼如下:

效果:

這種方法非常明顯的好處就是不必提前知道被居中的元素的尺寸挪挤,因為transform中偏移的百分比就是相對于元素自身的尺寸而言,當被居中的元素是被自己內(nèi)部元素撐開寬或者高的時候可適用此方法罢浇。

3.絕對定位結(jié)合margin:auto

這種方式的兩個核心是:把要垂直居中的元素相對于父元素絕對定位陆赋,top和bottom設(shè)置為相等的值沐祷,我這里設(shè)置成0了,當然也可以設(shè)置為99999px或者-99999px攒岛,無論什么赖临,只要兩者相等就行。這一一步做完之后再將要居中的元素的margin設(shè)為auto灾锯,這樣就可以實現(xiàn)垂直居中了兢榨。

被居中元素的寬度也可以不設(shè)置,但是不設(shè)置的話顺饮,就必須是圖片這種自身就包含尺寸的元素吵聪,否則無法實現(xiàn)。

4.使用padding實現(xiàn)子元素的垂直居中

這種方式非常簡單领突,就是給父元素設(shè)置相等的上下內(nèi)邊距暖璧,則子元素自然是垂直居中的案怯,自然這個時候父元素是不能設(shè)置高度的君旦,要讓它自動被填充起來,除非設(shè)置了一個正好等于上內(nèi)邊距+子元素高度+下內(nèi)邊距的值嘲碱,否則無法精確地垂直居中金砍。

這種方式看似沒有什么技術(shù)含量,但其實在某種場景下也是非常好用的麦锯。

5.使用flex布局

flex布局(彈性布局/伸縮布局)里門道頗多恕稠,這里先針對用到的東西簡單說一下,想深入學(xué)習(xí)的小伙伴可以去看阮一峰老師的博客扶欣。

flex也就是flexible鹅巍,意思為靈活的,柔韌的料祠,易彎曲的骆捧。

元素可以通過設(shè)置display:flex;將其指定為flex布局的容器,指定好了容器之后再為其添加align-items屬性髓绽,該屬性定義項目在交叉軸(這里是縱向周)上的對齊方式敛苇,可能的取值有五種,分別如下:

flex-start:交叉軸的起點對齊顺呕;flex-end:交叉軸的終點對齊枫攀;

center:交叉軸的中點對齊;baseline項目第一行文字的基線對齊株茶;

strech(該值是默認值):如果項目沒有設(shè)置高度或者設(shè)置為auto来涨,那么將占滿整個容器的高度。

6.彈性布局

這種方式也是給父元素設(shè)置display:flex,設(shè)置好之后改變主軸的flex-direction:column,該屬性可能的取值有四個启盛,分別如下:

row(該值為默認值):主軸為水平方向扫夜,起點在左端楞泼;

row-reverse,主軸是水平方向笤闯,起點在有端堕阔;

column主軸為垂直方向,起點在上沿颗味;

column-reverse:主軸為垂直方向超陆,起點在下沿。

justify-content屬性定義了項目在主軸上的對齊方式浦马,可能取的值有五個时呀,分別如下(不過具體的對齊方式與主軸的方向有關(guān),以下的值都是假設(shè)主軸為從左到右的):

flex-start(該值是默認值):左對齊晶默;

flex-end:右對齊谨娜;

center:居中對齊;

space-between:兩端對齊磺陡,各個項目之間的間隔均對齊趴梢;

space-around:各個項目兩側(cè)的間隔相等。

7.還有一種在前面已經(jīng)見到過很多次的方式就是使用line-height對單行文本進行垂直居中币他。

這里有一個小坑需要大家注意:line-height(行高)的值不能設(shè)為100%坞靶;我們來看看官網(wǎng)文檔中給出的關(guān)于line-height取值為百分比時候的描述:基于當前字體尺寸的百分比行間距,所以大家就明白了蝴悉,如果是百分比是相對于字體尺寸來講的彰阴。

8.?使用 display:table-cell 和 vertical-align 對容器里的文字進行垂直居中

這里關(guān)于vertical-align啰嗦兩句:vertical-align屬性只對擁有valign特性的html元素起作用,例如表格元素中的<td><th>等等拍冠,而像<div><span>這樣的元素是不行的尿这。

  valign屬性規(guī)定單元格中內(nèi)容的垂直排列方式,語法:<td valign="value">庆杜,value的可能取值有四種:

  top:對內(nèi)容進行上對齊

  middle:對內(nèi)容進行居中對齊

  bottom:對內(nèi)容進行下對齊

  baseline:基線對齊

????????關(guān)于baseline值:基線是一條虛構(gòu)的線射众。在一行文本中,大多數(shù)字母以基線為基準欣福。baseline 值設(shè)置行中的所有表格數(shù)據(jù)都分享相同的基線责球。該值的效果常常與 bottom 值相同。不過拓劝,如果文本的字號各不相同雏逾,那么 baseline 的效果會更好。?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末郑临,一起剝皮案震驚了整個濱河市栖博,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌厢洞,老刑警劉巖仇让,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件典奉,死亡現(xiàn)場離奇詭異,居然都是意外死亡丧叽,警方通過查閱死者的電腦和手機卫玖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來踊淳,“玉大人假瞬,你說我怎么就攤上這事∮爻ⅲ” “怎么了脱茉?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長垄开。 經(jīng)常有香客問我琴许,道長,這世上最難降的妖魔是什么溉躲? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任榜田,我火速辦了婚禮,結(jié)果婚禮上签财,老公的妹妹穿的比我還像新娘串慰。我一直安慰自己偏塞,他們只是感情好唱蒸,可當我...
    茶點故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著灸叼,像睡著了一般神汹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上古今,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天屁魏,我揣著相機與錄音,去河邊找鬼捉腥。 笑死氓拼,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的抵碟。 我是一名探鬼主播桃漾,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼拟逮!你這毒婦竟也來了撬统?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤敦迄,失蹤者是張志新(化名)和其女友劉穎恋追,沒想到半個月后凭迹,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡苦囱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年嗅绸,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片撕彤。...
    茶點故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡朽砰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出喉刘,到底是詐尸還是另有隱情瞧柔,我是刑警寧澤,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布睦裳,位于F島的核電站造锅,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏廉邑。R本人自食惡果不足惜哥蔚,卻給世界環(huán)境...
    茶點故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蛛蒙。 院中可真熱鬧糙箍,春花似錦、人聲如沸牵祟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽诺苹。三九已至咕晋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間收奔,已是汗流浹背掌呜。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留坪哄,地道東北人质蕉。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像翩肌,于是被迫代替她去往敵國和親模暗。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,509評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載自:CSS垂直居中的11種實現(xiàn)方式還有篇清除浮動的文章:css清除浮動大全共8種方法 本人前端小白摧阅,正在做一個...
    路漫漫其修遠兮Wzt閱讀 507評論 0 1
  • H5移動端知識點總結(jié) 閱讀目錄 移動開發(fā)基本知識點 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇閱讀 4,435評論 0 26
  • 移動開發(fā)基本知識點 一.使用rem作為單位 html { font-size: 100px; } @media(m...
    橫沖直撞666閱讀 3,460評論 0 6
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案汰蓉? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽?zāi)J的外補...
    _Yfling閱讀 13,737評論 1 92
  • 使用絕對定位和負外邊距對塊級元素進行垂直居中 html代碼: css代碼: 運行結(jié)果如下: 這個方法兼容性不錯,但...
    深沉的簡單閱讀 267評論 0 2