17

html で 2 つの要素をまとめて作成し、それぞれをインライン ブロックにしました。これら 2 つの要素の間には常にギャップがあることがわかりましたが、実際には、それらにパディング/マージン属性を設定していませんでした。誰かがこのギャップを修正する理由と方法を教えてもらえますか?

4

4 に答える 4

39

CSS:

span {
  display: inline-block;
}

HTML:

<span>This will have</span>
<span>a gap between the elements</span>

<span>This won't have</span><span>a gap between the elements</span>
于 2012-04-18T11:03:37.757 に答える
20

HTML コメントを使用して、空白を削除し、適切なコード形式を維持できます。

   <span>1</span><!--
--><span>2</span><!--
--><span>3</span>
于 2013-01-29T02:35:17.677 に答える
11

を使用する場合inline-blocks、マージンを削除するには、親コンテナーにword-spacing: -3px;と を適用してから、 と を使用してインライン ブロック要素でこれらのルールを元に戻します。letter-spacing: -3px;word-spacing: normal;letter-spacing: normal;

たとえば、この基本的なマークアップで

<div>
   <span>...</span>
   <span>...</span>
   <span>...</span>
</div>

最小限のCSSコードは

div {
   word-spacing: -3px;
   letter-spacing: -3px;
}

span {
   word-spacing: normal;
   letter-spacing: normal;
   display: inline-block;
}

もう 1 つの可能性 (お勧めしませんが、とにかく知っておくと便利です) はfont-size: 0;、親コンテナーに設定することです。

于 2012-04-18T11:09:34.897 に答える
2

これは奇妙な動作であり、修正することができます。マークアップを次のように変更してください。

<div class="inline">
   first
</div><div class="inline">
   second
</div>

別のインライン要素を定義するときは、スペースを入れないでください。

于 2012-04-18T11:03:25.407 に答える