CSS inline-block wrap问题,混合文本和空div

Vol*_*lox 5 html css css3 display

设置时,我有divs(混合空或文本)的对齐问题display: inline-block.有关示例,请参见下图:

查看对齐问题

正如你所看到的那样,div带有文本的s在某种程度上与其他divs 不对齐.请参阅 JSFiddle以获取我的问题的工作示例.

我已经知道解决这个问题的一些方法,但我想了解它为什么会发生.我的目标是用最少的CSS更改来解决这个问题(可能没有HTML修改).

HTML

<div class="bar">
  <div class="actors">
    <div class="actor" style="background-image: url('http://lorempixel.com/32/32/')"></div>
    <div class="actor" style="background-image: url('http://lorempixel.com/32/32/')"></div>
    <div class="actor num"><span>5</span></div>
    <div class="actor" style="background-image: url('http://lorempixel.com/32/32/')"></div>
    <div class="actor num"><div>6</div></div>
  </div>
  <div class="lol">lol</div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS

.bar {
  height: 40px;
  border-bottom: 1px solid #000;
}
.actors {
  float: left;

}
.actor {
  display: inline-block;
  width: 34px;
  height: 34px;

  background-color: gray;
  border-radius: 16px;
  border: 1px solid red;
}
.num {

}
.lol {
  float: right;
}
Run Code Online (Sandbox Code Playgroud)

Kit*_*dia 3

原因是vertical-align每个文本都有默认值。它具有初始值baseline,因此方向位于基线上。

修复它的最简单和最明智的方法是将其设置为vertical-align: top;

.actor {
    vertical-align: top;
}
Run Code Online (Sandbox Code Playgroud)

演示:JSFiddle