5

divが設定されている場合、 s (空またはテキストと混合) の位置合わせの問題がありますdisplay: inline-block。例については、次の画像を参照してください。

位置合わせの問題を参照

ご覧のとおり、div何らかの形でテキストを含む が残りの と整列していませんdiv私の問題の実例については、この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>

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;
}
4

2 に答える 2

3

その理由は、vertical-alignすべてのテキストが持っている のデフォルト値です。これには初期値があるbaselineため、方向はベースライン上にあります。

それを修正する最も簡単でスマートな方法は、次のように設定することvertical-align: top;です。

.actor {
    vertical-align: top;
}

デモ: JSFiddle

于 2015-12-22T18:08:56.000 に答える