如何使div垂直水平居中的css代碼
發(fā)布時(shí)間:2010-02-23 16:06:27 作者:佚名
我要評(píng)論

很多人都會(huì)遇到這樣的問(wèn)題:如何使DIV居中,div垂直居中,div水平居中.
主要的樣式定義如下,這也是最簡(jiǎn)單的方法:
body {TEXT-ALIGN: center;}
#center { MARGIN-RIGHT: auto; MARGIN-LEFT: auto; }
說(shuō)明:
首先在父級(jí)元素定義TEXT-ALIGN: center;這個(gè)的意思就是在父級(jí)元素內(nèi)的內(nèi)容居中;對(duì)于IE這樣設(shè)定就已經(jīng)可以了。但在mozilla中不能居中。解決辦法就是在子元素定義時(shí)候設(shè)定時(shí)再加上“MARGIN-RIGHT: auto;MARGIN-LEFT: auto; ”
需要說(shuō)明的是,如果你想用這個(gè)方法使整個(gè)頁(yè)面要居中,建議不要套在一個(gè)DIV里,你可以依次拆出多個(gè)div,只要在每個(gè)拆出的div里定義MARGIN-RIGHT: auto;MARGIN-LEFT: auto; 就可以了。
如何使圖片在DIV 中垂直居中
用背景的方法。舉例:
body{
BACKGROUND: url(http://www.w3cn.org/style/001/logo_w3cn_194×79.gif) #FFF no-repeat center;
}
關(guān)鍵就是最后的center,這個(gè)參數(shù)定義圖片的位置。還可以寫(xiě)成“top left”(左上角)或者”bottom right”等,也可以直接寫(xiě)數(shù)值”50 30″
效果如下:
如何使文本在DIV中垂直居中
如果是文字,便不能用背景方法,可以用增高行距的辦法變通實(shí)現(xiàn)垂直居中,完整代碼如下:
<html>
<head>
<style>
body{
TEXT-ALIGN: center;
}
#center{
MARGIN-RIGHT: auto;
MARGIN-LEFT: auto;
height:200px;
background:#F00;
width:400px;
vertical-align:middle;
line-height:200px;
}
</style>
</head>
<body>
<div id=”center”>
<p>test content</p>
</div>
</body>
</html>
說(shuō)明信息:
vertical-align:middle;表示行內(nèi)垂直居中,我們將行距增加到和整個(gè)DIV一樣高line-height:200px;然后插入文字,就垂直居中了。
關(guān)于CSS 控制DIV水平居中問(wèn)題
我看到很多新人搞不明月。記得第一次看CSS是一個(gè)老外寫(xiě)的書(shū),那個(gè)里面談到居中使用。
margin-left:auto;
margin-right:auto;
其實(shí)等同于: view sourceprint?margin:0 auto;
于是可以使用這種方式,但是有人用IE時(shí)發(fā)現(xiàn)沒(méi)有居中。這里建議你看看是否遺漏了DTD聲明。 view sourceprint?<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
非常多的人犯過(guò)類似的錯(cuò)誤!這種方法也可以說(shuō)屢試不爽,但是在某些情況下還是行不通的。
于是有了第二種方法:
margin-left:50%;
left: -width/2;
這里的width不是CSS中的Width,而是你的DIV的寬度例如你的div是768px寬,那么你就應(yīng)該設(shè)置left:-384px。很好,已經(jīng)有兩種方法了,可以說(shuō)已經(jīng)能夠解決你可能遇到的問(wèn)題了。 有時(shí)候你會(huì)發(fā)現(xiàn),這兩個(gè)還不行。不能兼容一些瀏覽器。于是發(fā)現(xiàn)有了第三種方法,這中方法主要是考慮IE,它是建立在第一種方法的基礎(chǔ)之上。它需要設(shè)置body。 view sourceprint?body {text-align: center;}
這樣IE下也居中了,但是它帶來(lái)一個(gè)新的問(wèn)題,你發(fā)現(xiàn)你的頁(yè)面中所有文字都是居中的,這樣很不好看。這個(gè)就很容易解決了,只需要在你的DIV定義中加上 text-align: left; 之類調(diào)整的設(shè)置就行了。
body {TEXT-ALIGN: center;}
#center { MARGIN-RIGHT: auto; MARGIN-LEFT: auto; }
說(shuō)明:
首先在父級(jí)元素定義TEXT-ALIGN: center;這個(gè)的意思就是在父級(jí)元素內(nèi)的內(nèi)容居中;對(duì)于IE這樣設(shè)定就已經(jīng)可以了。但在mozilla中不能居中。解決辦法就是在子元素定義時(shí)候設(shè)定時(shí)再加上“MARGIN-RIGHT: auto;MARGIN-LEFT: auto; ”
需要說(shuō)明的是,如果你想用這個(gè)方法使整個(gè)頁(yè)面要居中,建議不要套在一個(gè)DIV里,你可以依次拆出多個(gè)div,只要在每個(gè)拆出的div里定義MARGIN-RIGHT: auto;MARGIN-LEFT: auto; 就可以了。
如何使圖片在DIV 中垂直居中
用背景的方法。舉例:
body{
BACKGROUND: url(http://www.w3cn.org/style/001/logo_w3cn_194×79.gif) #FFF no-repeat center;
}
關(guān)鍵就是最后的center,這個(gè)參數(shù)定義圖片的位置。還可以寫(xiě)成“top left”(左上角)或者”bottom right”等,也可以直接寫(xiě)數(shù)值”50 30″
效果如下:
如何使文本在DIV中垂直居中
如果是文字,便不能用背景方法,可以用增高行距的辦法變通實(shí)現(xiàn)垂直居中,完整代碼如下:
復(fù)制代碼
代碼如下:<html>
<head>
<style>
body{
TEXT-ALIGN: center;
}
#center{
MARGIN-RIGHT: auto;
MARGIN-LEFT: auto;
height:200px;
background:#F00;
width:400px;
vertical-align:middle;
line-height:200px;
}
</style>
</head>
<body>
<div id=”center”>
<p>test content</p>
</div>
</body>
</html>
說(shuō)明信息:
vertical-align:middle;表示行內(nèi)垂直居中,我們將行距增加到和整個(gè)DIV一樣高line-height:200px;然后插入文字,就垂直居中了。
關(guān)于CSS 控制DIV水平居中問(wèn)題
我看到很多新人搞不明月。記得第一次看CSS是一個(gè)老外寫(xiě)的書(shū),那個(gè)里面談到居中使用。
margin-left:auto;
margin-right:auto;
其實(shí)等同于: view sourceprint?margin:0 auto;
于是可以使用這種方式,但是有人用IE時(shí)發(fā)現(xiàn)沒(méi)有居中。這里建議你看看是否遺漏了DTD聲明。 view sourceprint?<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
非常多的人犯過(guò)類似的錯(cuò)誤!這種方法也可以說(shuō)屢試不爽,但是在某些情況下還是行不通的。
于是有了第二種方法:
margin-left:50%;
left: -width/2;
這里的width不是CSS中的Width,而是你的DIV的寬度例如你的div是768px寬,那么你就應(yīng)該設(shè)置left:-384px。很好,已經(jīng)有兩種方法了,可以說(shuō)已經(jīng)能夠解決你可能遇到的問(wèn)題了。 有時(shí)候你會(huì)發(fā)現(xiàn),這兩個(gè)還不行。不能兼容一些瀏覽器。于是發(fā)現(xiàn)有了第三種方法,這中方法主要是考慮IE,它是建立在第一種方法的基礎(chǔ)之上。它需要設(shè)置body。 view sourceprint?body {text-align: center;}
這樣IE下也居中了,但是它帶來(lái)一個(gè)新的問(wèn)題,你發(fā)現(xiàn)你的頁(yè)面中所有文字都是居中的,這樣很不好看。這個(gè)就很容易解決了,只需要在你的DIV定義中加上 text-align: left; 之類調(diào)整的設(shè)置就行了。
相關(guān)文章
- 本文給大家分享CSS 垂直水平居中的5種最佳解決方案以及各自的優(yōu)缺點(diǎn),本文給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友參考下吧2018-01-11
- 這篇文章主要介紹了CSS水平垂直居中的幾種方法總結(jié),垂直居中是布局中十分常見(jiàn)的效果之一,本文介紹了幾種方法,有興趣的可以了解一下。2016-12-19
純css多種方法實(shí)現(xiàn)div中單行文字、多行文字及嵌套div垂直水平居中
經(jīng)常遇到要居中的問(wèn)題,水平居中問(wèn)題比較好解決,而垂直居中問(wèn)題因?yàn)関ertical-align經(jīng)常失效,下面與大家分享下幾個(gè)不錯(cuò)的解決方法2014-04-24大小不固定的圖片和多行文字的垂直水平居中實(shí)現(xiàn)分析
其核心原理其實(shí)與第二種利用font-size大小實(shí)現(xiàn)IE下圖片垂直居中是一致的。將font-size設(shè)置得很大,目的是撐開(kāi)IE下默認(rèn)文字空間的高度,其性質(zhì)類似于空格,然后通過(guò)vertical2012-12-07CSS 實(shí)現(xiàn)未知內(nèi)容高度的垂直水平居中(改良版)
垂直居中在IE瀏覽器下的實(shí)現(xiàn)比較難實(shí)現(xiàn),而更難實(shí)現(xiàn)的應(yīng)該是未知內(nèi)容高度的垂直水平居中!還好網(wǎng)上也有很多高人發(fā)布了一些解決的方法!這里我進(jìn)行了一些改良,兼容FF,IE62009-06-05CSS解決未知高度的垂直水平居中自適應(yīng)問(wèn)題
今天有人問(wèn)起,晚上試著寫(xiě)出來(lái),供參考; 以下代碼兼容主流瀏覽器IE6、IE7、Firefox、Opera。 從最簡(jiǎn)單的開(kāi)始………… 一、如何讓一個(gè)DIV水平居2009-04-04- 這篇文章主要介紹了CSS水平垂直居中解決方案(6種)的相關(guān)資料,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-02-10