CSS - 按内容更改高度

时间:2017-08-11 06:12:35

标签: css

我有3个盒子,我需要按内容更改高度,但高度必须更改为向上(下边距对齐)。这是图像应该如何看起来: enter image description here

<style>
  .wrapper{
    width: 100%;
    height: 30px;
  }

  .wrapper .point{
    width: 12px;
    height: 12px;
    background: #979797;
    -moz-border-radius: 70px;
    -webkit-border-radius: 70px;
    border-radius: 70px;
    float: left;
    margin-top: 3px;
  }

  .wrapper .text{
    width: 130px;
    float: left;
    border-bottom: 2px solid #979797;
    color: #979797;
    font-size: 11px;
    min-height: 20px;
    text-align: center;
    padding-bottom: 20px;
    margin-top: -12px;
  }
</style>


<div class="wrapper">
  <div class="point"></div>
  <div class="text">Short</div>
  <div class="point"></div>
  <div class="text">Short</div>
  <div class="point"></div>
  <div class="text">Very long text. Lorem ipsum dolor sit amet</div>
  <div class="point"></div>
</div>

怎么做?感谢

1 个答案:

答案 0 :(得分:0)

float:left是不可能的(除非事先知道确切的高度,否则可以根据它设置margin-top)。但是花车从来都不是为了做这种布局。

但是,使用Flexbox可以轻松完成:

.wrapper{
    display: flex;
    flex-flow: row wrap;
    align-items: flex-end;
}

.wrapper .point{
    width: 12px;
    height: 12px;
    background: #979797;
    border-radius: 70px;
    display: inline-block;
    margin-top: 3px;
}

.wrapper .text{
    width: 90px;
border-bottom: 2px solid #979797;
color: #979797;
font-size: 11px;
text-align: center;
padding: 20px;
background: #eee;
}
<div class="wrapper">
  <div class="point"></div>
  <div class="text">Short</div>
  <div class="point"></div>
  <div class="text">Short</div>
  <div class="point"></div>
  <div class="text">Very long text. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet</div>
  <div class="point"></div>
</div>

此外,通过将vertical-align:bottom设置为其容器,可以使用内联块来完成此操作。您可以将其添加为Flexbox解决方案的后备广告(您只需将vertical-align:bottom设置为.wrapper并将display:inline-block设置为点和文本)。我不建议仅依赖内联块,因为它们不是用于布局,如浮点数,并且需要某种黑客来调整项之间的空间,因为它们将标记之间的空白字符视为空白文本字符。但作为支持非支持Flexbox的浏览器(如IE10-)的后备,他们将提供一个体面的体验(比没有更好)。