首页
/
每日頭條
/
圖文
/
css垂直居中對齊方法
css垂直居中對齊方法
更新时间:2026-06-15 23:39:23

css垂直居中對齊方法(如何選擇CSS實現垂直居中的最優方法)1

利用 CSS 來實現對象的垂直居中有許多不同的方法,比較難的是選擇那個正确的方法。有些方法在一些浏覽器中無效。下面我們來通過分析使對象垂直集中的5種不同方法的優缺來确定如何選擇最優的方法。

方法1:

這個方法使用絕對定位的 div,把它的 top 設置為 50%,top margin 設置為負的 content 高度。這意味着對象必須在 CSS 中指定固定的高度。

因為有固定高度,或許你想給 content 指定 overflow:auto,這樣如果 content 太多的話,就會出現滾動條,以免content 溢出。

<div class="content"> Content goes here</div>

#content {

position: absolute;

top: 50%;

height: 240px;

margin-top: -120px; /* negative half of the height */

}

優點:

适用于所有浏覽器

不需要嵌套标簽

缺點:

沒有足夠空間時,content 會消失(類似div 在 body 内,當用戶縮小浏覽器窗口,滾動條不出現的情況)

css垂直居中對齊方法(如何選擇CSS實現垂直居中的最優方法)2

方法2:

這種方法,在 content 元素外插入一個 div。設置此 div height:50%; margin-bottom:-contentheight;。

content 清除浮動,并顯示在中間。

<div id="floater">

<div id="content">Content here</div>

</div>

#floater {

float: left;

height: 50%;

margin-bottom: -120px;

}

#content {

clear: both;

height: 240px;

position: relative;

}

優點:

适用于所有浏覽器

沒有足夠空間時(例如:窗口縮小) content 不會被截斷,滾動條出現

缺點:

唯一我能想到的就是需要額外的空元素了(也沒那麼糟,又是另外一個話題)

方法3:

這個方法把一些 div 的顯示方式設置為表格,因此我們可以使用表格的 vertical-align property 屬性。

<div id="wrapper">

<div id="cell">

<div class="content">Content goes here</div>

</div>

</div>

#wrapper {

display: table;

}

#cell {

display: table-cell;

vertical-align: middle;

}

優點:

content 可以動态改變高度(不需在 CSS 中定義)。當 wrapper 裡沒有足夠空間時, content 不會被截斷

缺點:

Internet Explorer(甚至 IE8 beta)中無效,許多嵌套标簽(其實沒那麼糟糕,另一個專題)

css垂直居中對齊方法(如何選擇CSS實現垂直居中的最優方法)3

方法4:

這個方法隻能将單行文本置中。隻需要簡單地把 line-height 設置為那個對象的 height 值就可以使文本居中了。

<div id="content"> Content here</div>

#content {

height: 100px;

line-height: 100px;

}

優點:

适用于所有浏覽器

無足夠空間時不會被截斷

缺點:

隻對文本有效(塊級元素無效)

多行時,斷詞比較糟糕

這個方法在小元素上非常有用,例如使按鈕文本或者單行文本居中。

哪個方法?

我最喜歡的是方法三,缺點不多。因為 content 會清除浮動,所以可以在它上面放置别的元素,并且當窗口縮放時,

居中的 content 不會把另外的元素蓋住。看例子。

<div id="top">

<h1>Title</h1>

</div>

<div id="floater"></div>

<div id="content">Content Here</div>

#floater {

float: left;

height: 50%;

margin-bottom: -120px;

}

#top {

float: right;

width: 100%;

text-align: center;

}

#content {

clear: both;

height: 240px;

position: relative;

}

方法5:

這個方法使用了一個 position:absolute,有固定寬度和高度的 div。這個 div 被設置為 top:0; bottom:0;。但是因為它有固定高度,其實并不能和上下都間距為 0,因此 margin:auto; 會使它居中。使用 margin:auto;使塊級元素垂直居中是很簡單的。

<div id="content"> Content here</div>

#content {

position: absolute;

top: 0;

bottom: 0;

left: 0;

right: 0;

margin: auto;

height: 240px;

width: 70%;

}

優點::簡單

缺點:

IE(IE8 beta)中無效

無足夠空間時,content 被截斷,但是不會有滾動條出現

現在你知道是怎麼回事了,下節我們開始創建一個簡單但是有趣的網站。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
為什麼現在單身的特别多(單身為什麼越來越多了)
為什麼現在單身的特别多(單身為什麼越來越多了)
  “這一晃,十來年過去了……唉是啊,我一直單着,你也是。哦,你離了?咳,也好……”   前不久,小編和一些多年不見的老同學聚會,二十來個人,無論男女,超過一半都單身。   其中三個人,之前結過婚,後來都離了,獨自生活。   這大概就是當今社會的一個切片。      就小編我所知,那些和我基本同齡的熟人,常年一個人過日子的,多得是。   我的老媽,前些年也沒...
2026-06-15
人過四十後看淡簡單的生活(人到四十以後隻有)
人過四十後看淡簡單的生活(人到四十以後隻有)
     塵世間太多的情感,總是虛無缥缈,如水中之月,霧裡看花,追不到,摸不着,守不住,又放不下。   深陷紅塵的我們,常常會迷失在塵世之中,行色匆匆的專注趕路,卻忘了自己,也忘了看看沿途的風景。   一晃,已過而立之年,步入了不惑之年,此時,沉穩,從容才是大境界。   俗話說:四十不惑。過了四十,哪些事情應該堅持,哪些事情應該扔掉,心裡應該有數了。   人...
2026-06-15
雙11在什麼網購物好(雙11駕到)
雙11在什麼網購物好(雙11駕到)
     (一)恩施州市監局、州消委發布“雙11”消費警示   防止商家套路是關鍵   恩施晚報訊(全媒體記者楊亞玲 通訊員譚玲)又是一年“雙11”,網絡購物狂歡盛會即将開啟,您的購物車是否已滿,網絡直播購物鬧鐘提醒是否已設置?恩施州市場監管局、州消費者委員會提醒您貨比三家,理性購物。   仔細查看宣傳廣告,防止商家虛假宣傳。近兩年,網絡視聽電子商務直播興起...
2026-06-15
冬季寒潮是冷鋒還是反氣旋(寒潮是反氣旋還是冷鋒)
冬季寒潮是冷鋒還是反氣旋(寒潮是反氣旋還是冷鋒)
  答:   寒潮:大範圍的強烈的冷空氣活動。侵襲我國的寒潮來自亞歐大陸上的冷高壓活動。故,寒潮是反氣旋。   冷鋒:冷空氣向暖空氣方向移動的鋒。冬季,形成于蒙古、西伯利亞的強大的冷高壓經常活動,并常常南下進入我國,形成寒潮。此時,冷空氣向暖空氣方向移動。故,寒潮是冷鋒。   寒潮屬于天氣現象,且屬于一種災害天氣現象。反氣旋、冷鋒屬于天氣系統。非要把兩挂上鈎...
2026-06-15
香港和勝和最新選坐館消息(和勝和坐館雞腳黑)
香港和勝和最新選坐館消息(和勝和坐館雞腳黑)
  他曾因愛人被掌掴,号令社團衆人,直接殺到仇家總部,将仇家的臉面按在地下摩擦。   曾經不可一世的黑幫新義安,被他澆滅了嚣張氣焰,對他退避三舍。   他就是香港黑幫“和勝和坐館”,“雞腳黑”。      50年代“雞腳黑”出生于香港,原名招國強。在“雞腳黑”出生直至他懂事的時候,他的家世在當地都稱得上“大戶人家”。   自幼“雞腳黑”便過着錦衣玉食,衣來張...
2026-06-15
Copyright 2023-2026 - www.tftnews.com All Rights Reserved