元素:
div#wrap {
height:400px;
display:table;
}
div#content {
vertical-align:middle;
display:table-cell;
border:1px solid #FF0099;
background-color:#FFCCFF;
width:760px;
}
多行文字实现垂直居中 现在我们要使这段文字垂直居中显示! Webjx.Com <br> div#wrap {<br> height:400px;<br> display:table;<br> }<br> div#content {<br> vertical-align:middle;<br> display:table-cell;<br> border:1px solid #FF0099;<br> background-color:#FFCCFF;<br> width:760px;<br> }<br>
这个方法应该是很理想了,但是不幸的是Internet Explorer 6 并不能正确地理解display:table和display:table-cell,因此这种方法在
Internet Explorer 6及以下的版本中是无效的。嗯,这让人很郁闷!不过我们还其它的办法
四、在Internet Explorer中的解决方案
在Internet Explorer 6及以下版本中,在高度的计算上存在着缺陷的。在Internet Explorer 6中对父元素进行定位后,如果再对子元素
进行百分比计算时,计算的基础似乎是有继承性的(如果定位的数值是绝对数值没有这个问题,但是使用百分比计算的基础将不再是该元素的
高度,而从父元素继承来的定位高度)。例如,我们有下面这样一个(X)HTML代码段:
如果我们对subwrap进行了绝对定位,那么content也会继承了这个这个属性,虽然它不会在页面中马上显示出来,但是如果再对content进
行相对定位的时候,你使用的100%分比将不再是content原有的高度。例如,我们设定了subwrap的position为40%,我们如果想使content的上
边缘和wrap重合的话就必须设置top:-80%;那么,如果我们设定subwrap的top:50%的话,我们必须使用100%才能使content回到原来的位置上去
,但是如果我们把content也设置50%呢?那么它就正好垂直居中了。所以我们可以使用这中方法来实现Internet Explorer 6中的垂直居中:
div#wrap {
border:1px solid #FF0099;
background-color:#FFCCFF;
width:760px;
height:400px;
position:relative;
}
div#subwrap {
position:absolute;
border:1px solid #000;
top:50%;
}
div#content {
border:1px solid #000;
position:relative;
top:-50%;
}
当然,这段代码只能在Internet Exlporer 6等计算存在问题的浏览器中才会有作用。(不过我不解,我查阅了很多文章,不知道是因为出
处相同还是什么原因,似乎很多人都不愿意去解释Internet Exlporer 6中这这个Bug的原理,我也只是了解了一点皮毛,还要再研究)
多行文字实现垂直居中 现在我们要使这段文字垂直居中显示!<br> div#wrap {<br> border:1px solid #FF0099;<br> background-color:#FFCCFF;<br> width:760px;<br> height:500px;<br> position:relative;<br> }<br> div#subwrap {<br> position:absolute;<br> border:1px solid #000;<br> top:50%;<br> }<br> div#content {<br> border:1px solid #000;<br> position:relative;<br> top:-50%;<br> }
5. 完璧な解決策
次に、上記 2 つの方法を組み合わせて完璧な解決策を得ることができますが、これには CSS ハックの知識が必要です。 CSS ハックを使用してブラウザを区別する場合は、次の記事を参照してください:
「簡単な CSS ハック: IE6、IE7、IE8、Firefox、Opera を区別する」:
div#wrap {
display:table;
border:1px Solid #FF0099;
背景色:#FFCCFF;
高さ: 400px;
div#subwrap {
垂直整列:middle; cell;
_position:absolute;
_top:50%;
}
div#content {
_top:-50%;
この時点で、完璧なセンタリング ソリューションが作成されます。
< ;html xmlns="http://www.w3.org/1999/xhtml">
複数行テキストの垂直方向の中央揃え < ;pre>次に、このテキストを垂直方向の中央に配置する必要があります。
div#wrap {
border:1px ソリッド #FF0099;
背景色:#FFCCFF;
幅:760px;
高さ:500px;
位置:相対;
}
div#subwrap {
位置:絶対;
ボーダー:1px ソリッド #000;
トップ:50%;
}
div#content {
border:1px ソリッド #000;
位置:相対;
トップ:-50%;
}
div>