1

ここで何かが欠けているだけかどうかはわかりませんが、私のアプリでは次のようになります。

<label>Hello</label>
<label>World</label>

それらがレンダリングされると、次のようになります。

|こんにちは| |世界|

2 つのラベルの間には醜いスペースがあります (境界線または背景色を指定すると仮定します)。

ラベルを同じ行に移動すると、正常に機能します。

<label>Hello</label><label>World</label>

とにかくこのスペースを削除する方法はありますか?

4

1 に答える 1

3

これは、ブラウザーによってインライン要素がレンダリングされる方法です。スペース、タブ、改行のいずれであっても、繰り返されない空白はそのままレンダリングされます。

最も信頼できる方法は、choose を使用してラベルをブロック レベルの要素として表示し、それらをフロートさせることです。ただし、ラベルをフローティングすると、ラベルがドキュメント フローから取り除かれ、親が折りたたまれてしまうことに注意してくださいoverflow: hidden

マークアップが次のようになっているとします。

<form>
    <label>Hello</label>
    <label>World</label>
</form>

この問題を修正する CSS は次のとおりです。

form {
    overflow: hidden;
}
label {
    display: block;
    float: left;
}

ここで例を参照してください: http://jsfiddle.net/teddyrised/7RXDm/


または、ブラウザーのレンダリングによって導入されるスペースに近似する値を使用して、負のマージンを宣言することもできますが、特に柔軟なフォント サイズ、さまざまなフォント ファミリ、およびさまざまなズーム レベルを扱う場合は予測できません。

于 2013-11-02T22:27:00.573 に答える