div水平居中的N種方法

div水平居中的N種方法

一奥务、單行垂直居中

如果一個(gè)容器中只有一行文字物独,對(duì)它實(shí)現(xiàn)居中相對(duì)比較簡(jiǎn)單,我們只需要設(shè)置它的實(shí)際高度height和所在行的高度line-height相等即可氯葬。

div{

height:25px;

line-height:25px;

overflow:hidden;

}

這段代碼很簡(jiǎn)單挡篓,后面使用overflow:hidden的設(shè)置是為了防止內(nèi)容超出容器或者產(chǎn)生自動(dòng)換行,達(dá)不到垂直居中的效果帚称。

單行文字實(shí)現(xiàn)垂直居中

body{font-size:12px;font-family:tahoma;}

div{

height:25px;

line-height:25px;

background-color:#FFCCFF;

}

現(xiàn)在我們要使這段文字垂直居中顯示官研!

二、多行未知高度文字的垂直居中

如果一段內(nèi)容闯睹,它的高度是可變的那么我們就可以使用上一節(jié)講到的實(shí)現(xiàn)水平居中時(shí)使用到的最后一種方法戏羽,就是設(shè)定Padding,使上下的padding值相同即可楼吃。同樣的始花,這也是一種“看起來(lái)”的垂直居中方式,它只不過(guò)是使文字把

完全填充的一種訪求而已所刀⊙眉觯可以使用類(lèi)似下面的代碼:

div{

padding:25px;

line-height:30px;

}

優(yōu)點(diǎn):它可以在任何瀏覽器上運(yùn)行,并且代碼很簡(jiǎn)單浮创,只不過(guò)這種方法應(yīng)用的前提就是容器的高度必須是可伸縮的忧吟。

三、多行文本固定高度的居中

CSS中的vertical-align屬性只應(yīng)用于inline level, inline-block level及table-cells元素上斩披;其次vertical-align的對(duì)齊就基于每個(gè)line box(行框)的溜族。但是在CSS中還有一個(gè)display屬性能夠模擬讹俊,所以我們可以使用這個(gè)屬性來(lái)讓

模擬
就可以使用vertical-align了。

注意:display:table和display:table-cell的使用方法煌抒,前者必須設(shè)置在父元素上仍劈,后者必須設(shè)置在子元素上,因此我們要為需要定位的文本再增加一個(gè)

元素:

#wrap {

display:table;

width:100%;

background-color:#FFCCFF;

}

#content {

display:table-cell;

vertical-align:middle;

height:500px;

}

來(lái)看例子:

多行文字實(shí)現(xiàn)垂直居中

#wrap {

display:table;

width:100%;

background-color:#FFCCFF;

}

#content {

display:table-cell;

vertical-align:middle;

text-align:center;

height:400px;

}

現(xiàn)在我們要使這段文字垂直居中顯示寡壮!

content可以動(dòng)態(tài)改變高度(不需在 CSS 中定義)贩疙。當(dāng)wrap里沒(méi)有足夠空間時(shí),content不會(huì)被截?cái)?况既。

這個(gè)方法應(yīng)該是很理想了这溅,但是只能在IE8及以上瀏覽器以及非IE瀏覽器下才能看到效果

參考鏈接

五、多行文本垂直水平的居中(未知寬高)

#content{

position:absolute;

top:50%;

left:50%;

transform:translate(-50%,-50%);

}

利用了transform: translate(-50%, -50%);

示例如下:

多行文字實(shí)現(xiàn)垂直居中

#content {

position:absolute;

top:50%;

left:50%;

transform:translate(-50%,-50%);

height:400px;

width:400px;

background-color:#FFCCFF;

}

Content Here

六棒仍、多行文本固定寬高的居中

#content {

background:#ddd;

position:absolute;

top:50%;

left:50%;

width:200px;

height:100px;

margin-left:-100px;

margin-top:-50px;

/* negative half of the width */

/* negative half of the height */

}

示例如下:

多行文本固定高度的居中

#content {

background:#ddd;

position:absolute;

top:50%;

left:50%;

width:200px;

height:100px;

margin-left:-100px;

margin-top:-50px;

}

Content Here

優(yōu)點(diǎn):適用于所有瀏覽器悲靴、不需要嵌套標(biāo)簽

缺點(diǎn):沒(méi)有足夠空間時(shí),content會(huì)消失(類(lèi)似div 在body內(nèi)莫其,當(dāng)用戶縮小瀏覽器窗口癞尚,滾動(dòng)條不出現(xiàn)的情況)

七、多行文本固定寬高的居中

這個(gè)方法使用了一個(gè)position:absolute乱陡,有固定寬度和高度的div浇揩。這個(gè)div被設(shè)置為top:0;bottom:0;。但是因?yàn)樗泄潭ǜ叨鹊叭欤鋵?shí)并不能和上下都間距為 0临燃,因此margin:auto;會(huì)使它居中。使用margin:auto;使塊級(jí)元素垂直居中是很簡(jiǎn)單的烙心。

#content {

position:absolute;

top:0;

bottom:0;

left:0;

right:0;

margin:auto;

height:240px;

width:70%;

}

示例如下:

多行文本固定高度的居中

#content {

position:absolute;

top:0;

bottom:0;

left:0;

right:0;

margin:auto;

height:240px;

width:70%;

background:#ddd;

}

Content Here

優(yōu)點(diǎn):簡(jiǎn)單

缺點(diǎn):IE(IE8 beta)中無(wú)效膜廊;無(wú)足夠空間時(shí),content 被截?cái)嘁穑遣粫?huì)有滾動(dòng)條出現(xiàn)

參考鏈接

八爪瓜、居中一個(gè)浮動(dòng)元素

奇怪怎么讓一個(gè)浮動(dòng)元素居中,不過(guò)還是奉上代碼直接看效果吧

HTML:

居中居中居中居中居中居中
居中居中居中居中居中居中居中居中居
中居中居中居中居中居中居中居中居中居
中居中居中居中居中居中居中

CSS:

.wrap{

float:left;

width:100%;

height:400px;

background-color:#ccc;

}

.ele{

float:left;

position:relative;

left:50%;

top:50%;

}

.ele-inner{

position:relative;

left:-50%;

-webkit-transform:translate3d(0,-50%,0);

transform:translate3d(0,-50%,0);

background-color:#333;

color:#fff;

}

這種方法的原理匙瘪,首先是利用float屬性將需要居中的元素的父元素.ele的寬度收縮铆铆,然后left:50%將.ele的左邊和水平中線對(duì)齊,這個(gè)時(shí)候還沒(méi)居中丹喻,還需要將其往回拉自身寬度的50%薄货,于是.ele-inner便是真正需要水平居中的元素,我給它一個(gè)position:relative碍论,將其往回拉自身寬度50%就行了谅猾。對(duì)于垂直方向,依然是先將.ele top:50%到垂直方向中點(diǎn),但是這時(shí)給.ele-inner top:50%是不起作用的税娜,因?yàn)槿绻麤](méi)給父元素明確高度的話坐搔,這個(gè)50%是計(jì)算不出來(lái)的,因此敬矩,就有了transform : translate3d(0, -50%, 0)概行。

這種方法的好處是元素可以不定寬,任何時(shí)候都可以做到居中弧岳。

缺點(diǎn):當(dāng)居中元素的父元素left:50%時(shí)凳忙,如果元素寬度足夠大,會(huì)超出外面的容器禽炬,而如果外面的容器又正好是overflow:auto的話消略,那就會(huì)在外面產(chǎn)生滾動(dòng)條。

九瞎抛、inline-block實(shí)現(xiàn) 未知尺寸元素水平垂直居中

CSS探索之旅

inline-block的前世今生

十、text-align:center + absolute

text-aign:center本來(lái)是不能直接作用于absolute元素的却紧,但是沒(méi)有給其left等值的行級(jí)absolute元素是會(huì)受文本的影響的

HTML

center + absolute

CSS(less)

.wrap{

text-align:center;

width:100%;

height:400px;

background-color:#ccc;

font-size:0;

}

.ele{

position:absolute;

margin-left:-(100px/2);

margin-top:(400px-100px)/2;

width:100px;

height:100px;

display:inline-block;

background-color:#333;

color:#fff;

font-size:18px;

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末桐臊,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子晓殊,更是在濱河造成了極大的恐慌断凶,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件巫俺,死亡現(xiàn)場(chǎng)離奇詭異认烁,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)介汹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)却嗡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人嘹承,你說(shuō)我怎么就攤上這事窗价。” “怎么了叹卷?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵撼港,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我骤竹,道長(zhǎng)帝牡,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任蒙揣,我火速辦了婚禮靶溜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘鸣奔。我一直安慰自己墨技,他們只是感情好惩阶,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著扣汪,像睡著了一般断楷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上崭别,一...
    開(kāi)封第一講書(shū)人閱讀 51,604評(píng)論 1 305
  • 那天冬筒,我揣著相機(jī)與錄音,去河邊找鬼茅主。 笑死舞痰,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的诀姚。 我是一名探鬼主播响牛,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼赫段!你這毒婦竟也來(lái)了呀打?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤糯笙,失蹤者是張志新(化名)和其女友劉穎贬丛,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體给涕,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡豺憔,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了够庙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恭应。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖首启,靈堂內(nèi)的尸體忽然破棺而出暮屡,到底是詐尸還是另有隱情,我是刑警寧澤毅桃,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布褒纲,位于F島的核電站,受9級(jí)特大地震影響钥飞,放射性物質(zhì)發(fā)生泄漏莺掠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一读宙、第九天 我趴在偏房一處隱蔽的房頂上張望彻秆。 院中可真熱鬧,春花似錦、人聲如沸唇兑。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)扎附。三九已至蔫耽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間留夜,已是汗流浹背匙铡。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留碍粥,地道東北人鳖眼。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像嚼摩,于是被迫代替她去往敵國(guó)和親钦讳。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355

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

  • 各種純css圖標(biāo) CSS3可以實(shí)現(xiàn)很多漂亮的圖形枕面,我收集了32種圖形蜂厅,在下面列出。直接用CSS3畫(huà)出這些圖形膊畴,要比...
    劍殘閱讀 9,548評(píng)論 0 8
  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,754評(píng)論 1 92
  • 收聽(tīng)音頻,戳鏈接,舊號(hào)itclan已暫停使用,歡迎關(guān)注微信itclanCoder公眾號(hào)可收聽(tīng)更多音頻 前言 關(guān)于網(wǎng)...
    itclanCoder閱讀 8,186評(píng)論 3 30
  • 1病游、垂直對(duì)齊 如果你用CSS唇跨,則你會(huì)有困惑:我該怎么垂直對(duì)齊容器中的元素?現(xiàn)在衬衬,利用CSS3的Transform买猖,...
    kiddings閱讀 3,166評(píng)論 0 11
  • 最近網(wǎng)絡(luò)上有句話十分流行:嫁給愛(ài)情。浪漫感人的影視畫(huà)面配上一句“這大概就是嫁給愛(ài)情的樣子”引得姑娘們紛紛留言立誓滋尉,...
    深海大漁閱讀 400評(píng)論 2 7