私は次のレイアウトを持っています
<div style="width:100px">
<div style="width:50%; display: inline-block;">
div1
</div>
<div style="width:50%; display: inline-block;">
div2
</div>
</div>
hTMLでは、div(div1とdiv2)を閉じると開くの間に変更行があるため、ブラウザーは改行の代わりに「スペース」文字を追加します。これにより、最初のdivの下に2番目のdivが表示されます。
ただし、div1とdiv2の間の\ nを削除すると、それらは互いに隣り合って表示されます。これは予想される動作です。
<div style="width:100px">
<div style="width:50%; display: inline-block;">
div1
</div><div style="width:50%; display: inline-block;">
div2
</div>
</div>
ただし、これによりコードが見苦しくなります。現在、<DOCTYPE html>
を使用しています。 XHTMLに切り替えてみましたが、うまくいきませんでした。この改行の動作を排除する方法があると確信しています、何かアイデアはありますか?
参考:floatを使用したり、レンダリング中にphpでhtml出力を解析して改行を削除したりしたくありません。
私は実際に良い解決策はリストでdivを切り替えることだけだと思います
<ul style="width:100px">
<li style="width:50%; display: inline-block;">
div1
</li>
<li style="width:50%; display: inline-block;">
div2
</li>
</ul>
通常、リストのプロパティを「リセット」すると、divのように見えます。利点は、ブラウザが<li>
アイテム間にスペースを生成しないことです。
もう1つの可能な方法は、親のフォントサイズをゼロに設定してから、子要素のフォントサイズを必要な値に設定することです。お気に入り:
#mybar { font-size: 0; }
#mybar span { font-size: 14px; }
ただし、font-size = 0はブラウザによって表示が異なることに注意する必要があります: http://webdesign.about.com/od/fonts/qt/tipfont0.htm
Firefoxでテストし、期待どおりに動作します。記憶が正しければ、ブラウザによっては最小フォントサイズも設定できるので、一貫性がない場合があります。
重複の可能性 改行を使用するときにHTML要素間の空白を削除
float:left
cssスタイルを使用するか、タグ間のスペースにコメントを付けることができます。
<div style="width:100px">
<div style="width:50%; display: inline-block;">
div1
</div><!--
--><div style="width:50%; display: inline-block;">
div2
</div>
</div>
後の編集:cssの解決策はfont-size:0px;
をコンテナーdivに設定することだと思います。
<div style="width:100px; font-size:0px;">
<div style="width:50%; display: inline-block; font-size:11px;">
div1
</div>
<div style="width:50%; display: inline-block; font-size:11px;">
div2
</div>
</div>
問題を解決する必要があります。
に見られる アンカータグ要素間のCSS不要な間隔
これを修正する1つの方法は、「display:inline-block」の代わりに「display:table-cell "」を使用することです。