DEMO可在以下网址找到:
http://www.bootply.com/VZ7gvA7ndE#
我将div
的高度设置为100px,并希望在label
的底部显示div
。我用
#contain-word-lab {
vertical-align: bottom;
margin-bottom: 5px;
}
然而,这根本不起作用。 label
仍然与div
的顶部对齐。
有没有人对此有任何想法?为什么vertical-align
在这里不起作用?谢谢!
答案 0 :(得分:22)
vertical-align: bottom
不能单独工作由于父元素的高度大于标签的计算高度,因此使用vertical-align: bottom
将将该(内联)元素移动到父元素的底部。< / p>
因为在内联流中,vertical-align
根据父级的基线确定元素的定位方式;在标签上使用该属性不会改变其父级的基线位置。
默认情况下,内嵌级元素(inline
,inline-block
)位于 baseline 中。如果它们具有不同的高度,那么最高的元素将决定其他元素的放置位置。
即。在内联流中,最高元素will affect/move the baseline of the parent:
因此,在the parent has an explicit height
的情况下,如果我们的内联子项与父项(全高子项)具有完全相同的高度,则会影响内联流并将基线向下移动: / p>
为了在父母中保留元素(包括具有下行字母的字母),我们应该align them vertically by vertical-align: bottom;
declaration。
<强> 10.8 Line height calculations: 'vertical-align' property 强>
<强>
baseline
强>
将框的基线与父框的基线对齐。如果框没有基线,请对齐底部 保证金边缘与父母的基线。<强>
bottom
强>
将对齐的子树的底部与线框的底部对齐。
因此,您可以在父级中创建一个全高元素(我个人更愿意使用pseudo-elements)来对齐底部的标签。
<强> EXAMPLE HERE 强>
#contain-word-div:after {
content: "";
display: inline-block;
height: 100%; /* Let it be as height as the parent */
vertical-align: bottom; /* Align the element at the bottom */
}
#contain-word-lab {
display: inline-block;
vertical-align: bottom; /* Align the element at the bottom */
}
答案 1 :(得分:6)
答案 2 :(得分:3)
将其设置为position:absolute;
#contain-word-lab {
position:absolute;
bottom:5px;
}
答案 3 :(得分:3)
将position:relative
应用于父div,并将您的标签设为position:absolute
。
#contain-word-div {
height: 100px;
position:relative;
}
#contain-word-lab {
position:absolute;
bottom:5px;
}
答案 4 :(得分:1)
vertical-align
往往效果最好(例如table
,tr
,td
,th
)或内联文本元素(例如span
)。但是,因为布局的table
元素不是一个好主意。我们可以使用display:table;
和display:table-cell;
css属性使其他元素像它们一样运行。
尝试应用以下css:
#contain-word-div {
height: 100px;
border: 1px solid black; /* added just for visualising position */
display:table;
}
#contain-word-lab {
display:table-cell;
vertical-align: bottom;
padding-bottom: 5px; /* use padding to give the label more height rather than trying to push the "cell" upwards */
}
答案 5 :(得分:0)
vertical-align
仅适用于表格单元格。如果您想将元素放在其父元素的底部,则需要将其设为position: absolute;
和bottom: 0;
。
答案 6 :(得分:0)
尝试执行以下操作
<强> FIDDLE DEMO 强>
#contain-word-lab {
vertical-align='bottom';/***Remove This***/
bottom:2px;
position:absolute;
}
答案 7 :(得分:0)
“底部”无论如何都行不通:)只需bottom
,不用“。
另外你的标签也需要一个高度。现在使用自动高度,这正是字体大小。我建议在您的标签上添加line-height: 100px;
。