我尝试将我的文本与其他帖子的div底部对齐,并在stackoverflow中解答我学会用不同的css属性来处理这个问题。但我无法完成它。基本上我的html
代码是这样的:
<div style='height:200px; float:left; border:1px solid #ff0000; position:relative;'>
<span style='position:absolute; bottom:0px;'>A Text</span>
</div>
效果是在FF中我只是得到垂直线(以折叠方式的div)并且文本被写在它旁边。如何阻止div
折叠但宽度适合文本?
答案 0 :(得分:89)
如果您想使用display: table-cell
解决方案,那就完全没问了。但是,我们有一种更好的方法来使用display: flex;
来完成相同的操作,而不是将其破解。 flex
具有decent support。
.wrap {
height: 200px;
width: 200px;
border: 1px solid #aaa;
margin: 10px;
display: flex;
}
.wrap span {
align-self: flex-end;
}
<div class="wrap">
<span>Align me to the bottom</span>
</div>
在上面的示例中,我们首先将父元素设置为display: flex;
,然后我们将align-self
用于flex-end
。这有助于您将项目推送到flex
父项的末尾。
flex
,则有效)如果您想将文字对齐到底部,则不必为此编写这么多属性,使用display: table-cell;
vertical-align: bottom;
就足够了
div {
display: table-cell;
vertical-align: bottom;
border: 1px solid #f00;
height: 100px;
width: 100px;
}
<div>Hello</div>
答案 1 :(得分:38)
您现在可以使用Flexbox justify-content: flex-end
立即执行此操作:
div {
display: flex;
justify-content: flex-end;
align-items: flex-end;
width: 150px;
height: 150px;
border: solid 1px red;
}
<div>
Something to align
</div>
Consult your Caniuse了解Flexbox是否适合您。