2016-04-12 14 views
-4
<p> 
    <span>cancel</span><span>comfirm</span> 
    </p> 
    <hr> 
    <p> 
    <span>cancel</span> 
    <span>confirm</span> 
    </p> 

私は同じ結果を表示する必要があります。 2番目のテンプレートでは、レンダリング後、 'キャンセル'と '確認'の間に 'スペース'があります。ブラウザはどのように 'スパン'をレンダリングするのですか?

タグはインライン要素なので、改行は使用されません。

私はそれらを両方ともCSSでフローティングすることができます。

しかし、理由はわかりません。私はブロックタグにはスペースがあると思う。

ref img

+0

いいえ、同じ結果を表示すべきではありません。ソースに最初の2つのスパンの間にスペースがあることに注意してください。 –

+0

は、なぜあなたはただお互いの後ろに続い入れていない:確認

+0

キャンセルを容易にするためPLUNKR追加 - > https://plnkr.co/edit/MNbG7KH7cEFvmOGkKflL?p=preview –

答えて

1

注:OP、それは答えた後、彼の質問を編集した、まだ、答えは 適用可能であり、彼はちょうどので、今の彼のイメージが 正しいDOMの順序を変更しました。

あなたの画像は正しくないと思います。 first p elementに空白が表示され、2番目の空白が表示されていないはずです。 spaninlineの要素なので、ソースのインライン要素間に改行があると、ブラウザによって空白がレンダリングされます。

あなたはすでに2 回目例ではやっているソースコード内の1行にそれらの要素を置くことによって、いくつかの方法でこれをハックすることができ、あるいは、あなたの親要素にfont-size: 0;を使用してfont-size再設定することができます子要素の場合はthisのように空のコメントを付けることができます。

+0

これを正しく扱わないブラウザがあるので、 'font-size:0'はどこでも適切な解決法ではないかもしれないことに注意してください。たとえば、Opera 12は、 'font-size:0'を持つたびに最小フォントサイズ(ユーザー設定で設定された8pxなど)を使用していました。 –

+0

年。 – dukegod

+0

@dukegodまだ修正されていますが、答えは同じです –

0

スパンは、同様のスタイルを適用するテキストグループです。スパンにはデフォルトでスタイルが適用されていません。 Spanは一般にデータの特定の部分にスタイリングするために使用されます。スパンはブラウザ上で何かまたは何かとしてレンダリングされません。

関連する問題