#main {
width: 100px;
height: 100px;
background-color: red;
}
#sub {
width: 100%;
height: 100%;
background-color: blue;
vertical-align: middle;
}
<div id="main">
<div id="sub">TEXT</div>
</div>
为什么在此示例中vertical-align不起作用?我该怎么做?我不想在px中使用margin,padding和set height。这可能吗?
答案 0 :(得分:1)
这应该有效:
#main {
width: 100px;
height: 100px;
background-color: red;
display: table;
}
#sub {
display: table-cell;
height: 100%;
width: 100%;
background-color: blue;
vertical-align: middle;
}
答案 1 :(得分:0)
如果您只是想在固定高度框中垂直居中文字,我会使用line-height:100px
来执行此操作
答案 2 :(得分:0)
你必须使用
display:table-row;
display:table-cell; or
display:table;
以及垂直对齐样式,不确定它必须是哪个确切的显示值,但它必须是table
之一。
答案 3 :(得分:0)
您需要在主容器上使用display:table
,在子容器上使用display:table-cell
。如下图所示:http://jsfiddle.net/8hAv3/1/
答案 4 :(得分:0)
你必须给元素#sub一个行高,否则浏览器不知道垂直对齐它有多高。
答案 5 :(得分:0)
只需给div line-height
。
#main {
width: 100px;
height: 100px;
background-color: red;
}
#sub {
width: 100%;
height: 100%;
background-color: blue;
line-height:100px;
}
此解决方案不使用display:table
和display:table-cell
作为display:table
,而display:table-cell
不是浏览器友好的,某些较旧的浏览器不支持