我有两个嵌套容器,.button-1x1和内部.button-content。我想以百分比表示.button-content维度,如果我这样做,则vertical-align属性不会运行。如果我将宽度和高度设置为px值,它运行正常。为什么?
外部容器的维度表示为px值,所以我认为我可以将嵌套维度表示为百分比,这样可以使我的css更加可维护。但这不起作用。
在这里小提琴:http://jsfiddle.net/pjZ8g/5/
代码:
<style type='text/css'>
.absolute {position:absolute}
.bg-teal {
background-color:#abc;
}
.button-content {
width:100%; /** Change this to px, and it will work */
height:100%; /** Change this to px, and it will work */
display: table-cell;
vertical-align: middle;
text-align:center;
text-transform:uppercase;
}
.button-1x1 {
width:230px;
height:230px;
}
</style>
<div class='button-1x1 relative'>
<div class='button button-1x1 bg-teal absolute'>
<div class='button-content'>
<span>test1</span>
</div>
</div>
</div>
答案 0 :(得分:1)
检查此更新的小提琴:http://jsfiddle.net/25JXw/1/
您可以通过为要在其中对齐内容的DIV指定line-height
来实现此目的。要在保持内部DIV的CSS通用的同时执行此操作,您可以继承父级的line-height
形式,如演示中所示。
<强> CSS 强>
.button-content {
width:100%;
height:100%;
display: block; /* change to block OR remove */
vertical-align: middle;
text-align:center;
text-transform:uppercase;
line-height: inherit; /* new */
}
.button-1x1 {
width:230px;
height:230px;
line-height: 230px; /* new */
}
答案 1 :(得分:1)
这是techfoobar的替代方法。
将<div class='button button-1x1 bg-teal absolute'>
样式更改为包含display:table
。