元素:
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. The perfect solution
Then we can get a perfect solution by combining the above two methods, but this Knowledge of CSS hacks is required. If you use CSS Hack to distinguish browsers, you can
refer to this article "Simple CSS hack: distinguish IE6, IE7, IE8, Firefox, Opera":
div#wrap {
display:table;
border:1px solid #FF0099;
background-color:#FFCCFF;
width:760px;
height:400px;
_position:relative;
overflow:hidden;
}
div#subwrap {
vertical-align:middle;
display:table-cell;
_position:absolute; >}
div#content {
_position:relative;
_top:-50%;
}
At this point, a perfect centering solution is created.
Vertical centering of multi-line text title>
Now we want to center this text vertically! <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> }
< ;/div>
p.s. The value of vertical-align is middle, while the value of align for horizontal centering is center. Although they are both centered, the keyword Different
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn