css實現文字垂直置中的代碼_經驗交流-www.jb51.net-css垂直置中www.jb51.net css垂直置中

來源:互聯網
上載者:User
CSS中怎樣設定才能使對象中的文字垂直置中於對象,這個問題也是捆擾很多朋友的難題。現在網上的很多代碼都做不到瀏覽器安全色。我把網上有關的方法整理了一下,做了些改動,完全可以相容各主流瀏覽器。
下面具體說一下在不同情況下垂直置中的方法。
一、一行文字垂直置中
看一下下面的代碼:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>指令碼之家-css垂直置中</title>
<script type="text/javascript" language="javascript">
function sel(id) {switch(id) {case "1":document.getElementById("sub").style.lineHeight = "normal";break;case "2":document.getElementById("sub").style.lineHeight = "20px";break;case "3":document.getElementById("sub").style.lineHeight = "28px";break;}}
</script>
<style type="text/css">
#all {
width:240px;
padding:10px;
font-size:12px;
color:#FFF;
background-color:#CCC;
}
#sub {
width:230px;
padding:0 5px;
height:20px;
overflow:hidden;
background-color:#F90;
}
#sel {
margin-top:5px;
}
select {
width:260px;
}
</style>
</head>

<body>
<p id="all">
<p id="sub">一行文字垂直置中,此對象高度為20px</p>
</p>
<p id="sel"><select onchange="sel(this.value)"><option value="1">預設值,設定行高為:normal</option><option value="2">設定行高和對象高度相同:20px</option><option value="3">設定行高比對象的高度大:28px</option></select></p>
</body>
</html>


方法:line-height:20px。設定相同的行高和對象高度。

說明:這種設定簡單又相容各種瀏覽器,支援內聯對象。但如果是固定高度的對象,只能顯示一行。當有兩行文字時,如果不設定“overflow:hidden”會把對象撐開。
二、多行文字,且高度自適應
請看下面的代碼:

方法:padding-top:10px; padding-bottom:10px。設定相同的上下內邊距。

說明:相容各種瀏覽器,支援內聯對象,同時又支援非文字物件,如img。但有一個缺點就是對象的高度不能固定。

三、固定高度的多行文字垂直置中

這種方法比較複雜,我也會詳細說明的。下面還是先看代碼:

方法:

(1)vertical-align:middle; display:table-cell。這種方法的意思是:將對象強制轉換為Table,vertical-align:middle的作用和表格中的valign="center"相同。

本來是很方便的一個屬性,但IE不支援這個屬性。為了使各瀏覽器安全色,我們不得不想其他的方法。

(2)在對象內建立一個子物件,並在子物件內再建立一個子物件或段落。網頁中:

<p id="a"><p><p>這裡具有多行文字,高度是50px這裡具有多行文字,高度是50px</p></p></p>

CSS中:

p {margin:0;}:因為在FireFox中預設P是有間距的

#a {height:50px;position:relative;}:設定高度50,如果要是子物件相對它定位,則要設定position:relative

#a p {*position:absolute;*top:50%;}:前面加星號“*”只有IE支援,其他瀏覽器會忽略此設定。position:absolute設定了此子物件的定位為絕對位置,top:50%設定了顯示在距頂端50%的位置,即25px(因為上面設定了父物件的高度為50px)。

#a p p {*position:relative;*top:-50%;}:這段代碼只能先理解為向上移動剩下高度的50%。因為top設定了負值,相當於向相反的方向移動。

說明:支援主流瀏覽器(在IE6,FireFox2下測試)。

  • 相關文章

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.