<html>
<meta charset="utf8">
<style>
.Absolute-Center {
display: table-cell;
width: 100px;
height: 100px;
border:1px solid red;
text-align:center;
vertical-align:middle;
}
</style>
<body>
<div class="Absolute-Center">
<p>居中</p>
</div>
</body>
</html>
显示效果如下:
可见:vertical-align:middle;起作用了。
下面增加一个div
<html>
<meta charset="utf8">
<style>
.outer{
width:300px;
height:500px;
border:1px solid red;
position:relative;
}
.Absolute-Center {
display: table-cell;
position:absolute;
margin:auto;
top:0px;
bottom:0px;
left:0px;
right:0px;
width: 100px;
height: 100px;
border:1px solid red;
text-align:center;
vertical-align:middle;
}
</style>
<body>
<div class="outer">
<div class="Absolute-Center">
<p>居中</p>
</div>
</div>
</body>
</html>
效果如下:
可见:vertical-align:middle;不起作用了。
请问,
1。为何此时 vertical-align:middle;不起作用了。
2。此时如何使得vertical-align:middle;起作用了。
position: absolute; display: table-cell;
equalsdisplay: block; position: absolute;
. 1#And
vertical-align
only applies toinline
/table-cell
elements.Solution: https://jsfiddle.net/dbLb68u1/
1# W3C CSS2.2 Chapter 9.7: Relationships between 'display', 'position', and 'float'