将文本与div的底部对齐

par*_*cus 52 html css text vertical-alignment

我试图将我的文本与其他帖子和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>
Run Code Online (Sandbox Code Playgroud)

结果是在FF中我只得到垂直线(以折叠方式的div)并且文本被写在它旁边.如何防止div折叠但宽度适合文本?

Mr.*_*ien 98

Flex解​​决方案

如果您想要使用该display: table-cell解决方案,那就完美了.但是,我们有更好的方法来实现相同的使用,而不是将其破解display: flex;.flex是一个有良好支持的东西.

.wrap {
  height: 200px;
  width: 200px;
  border: 1px solid #aaa;
  margin: 10px;
  display: flex;
}

.wrap span {
  align-self: flex-end;
}
Run Code Online (Sandbox Code Playgroud)
<div class="wrap">
  <span>Align me to the bottom</span>
</div>
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,我们首先父元素设置为display: flex;后来,我们使用align-selfflex-end.这有助于您将项目推送到flex父项的末尾.


旧解决方案(如果您不愿意使用,则有效flex)

如果要将文本对齐到底部,则不必为此编写这么多属性,使用display: table-cell;with vertical-align: bottom;就足够了

div {
  display: table-cell;
  vertical-align: bottom;
  border: 1px solid #f00;
  height: 100px;
  width: 100px;
}
Run Code Online (Sandbox Code Playgroud)
<div>Hello</div>
Run Code Online (Sandbox Code Playgroud)

(或JSFiddle)

  • 凉!!!而已!它的工作原理也没有width-property,我必须省略它才能使div符合内容.谢谢! (3认同)
  • 它不适用于职位:绝对 (2认同)

Zeq*_*uez 37

您现在可以使用Flexbox执行此操作justify-content: flex-end:

div {
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  width: 150px;
  height: 150px;
  border: solid 1px red;
}
  
Run Code Online (Sandbox Code Playgroud)
<div>
  Something to align
</div>
Run Code Online (Sandbox Code Playgroud)

请咨询您的Caniuse,了解Flexbox是否适合您.

  • @ kkkk00999尝试使用“ justify-content:center” (2认同)