有什么方法可以将 div 的内容文本放到它的底部?这里我准备了一个例子。
这是示例层次结构:
<div class="button">Button Label</div>
我试图在不添加额外跨度或更改层次结构的情况下实现结果。
有什么方法可以将 div 的内容文本放到它的底部?这里我准备了一个例子。
这是示例层次结构:
<div class="button">Button Label</div>
我试图在不添加额外跨度或更改层次结构的情况下实现结果。
三种可能的解决方案,尽管每个都有自己的警告。
第一个解决方案依赖于line-height: 220px; vertical-align: bottom;
将文本与DIV
. 第二种解决方案创建了一个:before
伪元素,将文本推到底部DIV
(这不需要额外的标记)。两种解决方案都将在 IE7 或更早版本中失败,并且在以下情况下都会出现问题:
第三种解决方案依赖于display: box;
属性,这是一个正在逐步淘汰的 CSS 属性(更多详细信息请参见Quick Hits With the Flexible Box Model)。仅从 v4 开始的 Chrome、从 v2 开始的 Firefox 和 IE10 beta 支持此解决方案。然而,一个新的 Flexbox 标准已经标准化,但浏览器支持却很少。该解决方案可能被认为“太新”而无法有效使用(html5please.com/#flexbox)。
一般来说,您应该考虑在文本周围添加一个新的包装元素,这将允许position: absolute; bottom: 0;
将元素舒适地放置在父元素的底部。这具有随着字体大小或文本长度增加而向上增长子元素的好处,并且与父容器的尺寸无关。根据您的定位对布局的关键任务程度,您可以使用 Javascript 添加这个新元素。考虑到您提出的问题,这可能并不理想,但是对于我上面列出的更古怪的 CSS 解决方案来说,浏览器支持并不理想:-p
另一种方法是使用“display: table-cell”和“vertical-align:bottom”。
.button {
display: table-cell;
background-color: darkred;
color: white;
width: 120px;
height: 120px;
text-align: center;
vertical-align: bottom;
}
如果您position:relative
在容器中使用,并使用
position:absolute;
bottom:0;
在内容上,可以达到预期的效果。
您的 CSS 可能如下所示:
.button
{
display: block;
background-color: darkred;
color: white;
width: 120px;
height: 120px;
text-align: center;
position: relative;
}
.bottomContent
{
position:absolute;
bottom: 0;
}
和你的 HTML:
<div class="button"><p class="bottomContent">Button Label</p></div>