line-height:18 pxが使用できない理由
7559 ワード
line-heightプロパティは何ですか?
MDNドキュメントに基づいて、line-heightプロパティで行ボックスの高さを指定します.つまり、テキスト行の間隔を設定します.そしてその後このような説明が出てきて、訳本を読むのも容易ではありません.
On block-level elements, it specifies the minimum height of line boxes within the element. On
non-replaced inline elements
, it specifies the height that is used to calculate line box height.block-level要素の場合、行内ボックスの最小高さを指定します.前の説明と一致して、次の文を見てください.non-pacced inline要素は、ワイヤボックスの高さを計算するために使用される高さを指定します.いったい
non-replaced inline elements
とは何でしょうか.行の要素が置換されていません
私はlnline要素だと知っていますが、少し前のnon-placedがどういう意味か探しました.私たちの友達のstackoverflowの質問から答えが見つかりました.
まず、置換要素(置換要素)の一例は
<img>
タグである.タグと他のinline属性を持つタグ、例えば<a>, <span>
などを考えて、答えを見てみましょう.So “non-replaced element” is just an element that is rendered as such, instead of causing some external content to appear in its place.
「わかりやすい説明です」「外部コンテンツを含まない」場合は
non-replaced
です.MDNで代替要素(replaced element)を検索しましたが、ここでの説明もいいです.💡 **「置換要素**」(replaced element)は、結果がCSSの範囲外であることを示す要素であり、CSSフォーマットモデルから分離された外部オブジェクトである.
簡単に言えば、代替要素は、現在のドキュメントスタイルの影響を受けないコンテンツの要素と言える.CSSは代替要素の位置に影響する可能性がありますが、内容には影響しません.
<iframe>
などの代替要素には、親ドキュメントのスタイルを継承しない独自のスタイルシートがある場合があります.replaced element
<iframe>
<video>
<embed>
<img>
replaced element
について理解したことがあるかもしれませんが、non*-*replaced element
の上のタグに加えて、一般的なinlineプロパティを持つタグであることがわかります.今、最初の問題に戻ります.だからline-heightは数字を指定しますか?
MDNによると、line-heightは
unitless numbers
を使用することを推奨します.常用のpx, rem, em
などに指定されないようにするためですが、理由は何でしょうか?受け継がれているからこそ.
次の例から見ると、緑枠は
unitless number
、ピンク枠はem
、青枠は%
によって指定されたline-height
である.<div class="box green">
<h1>오늘은 line-height 속성에 대해서 알아볼 것이다.</h1>
line-height는 unitless number로 지정하는 것이 좋다. 상속으로 인해 의도하지 않은 결과가 나타날 수 있기 때문이다.
</div>
<div class="box red">
<h1>오늘은 line-height 속성에 대해서 알아볼 것이다.</h1>
line-height는 unitless number로 지정하는 것이 좋다. 상속으로 인해 의도하지 않은 결과가 나타날 수 있기 때문이다.
</div>
<div class="box blue">
<h1>오늘은 line-height 속성에 대해서 알아볼 것이다.</h1>
line-height는 unitless number로 지정하는 것이 좋다. 상속으로 인해 의도하지 않은 결과가 나타날 수 있기 때문이다.
</div>
.green {
line-height: 1.1;
border: solid limegreen;
}
.red {
line-height: 1.1em;
border: solid pink;
}
.blue {
line-height: 110%;
border: solid skyblue;
}
h1 {
font-size: 30px;
}
.box {
width: 18em;
display: inline-block;
vertical-align: top;
font-size: 15px;
}
親<div>
ラベルのfont-size
が15px
に指定されているため、line-heightは15px * 1.1 = 16.5px
ラベルの中でも同じであることがわかります.そのためフォントが破壊されます.以下に説明するフォントの一部は15 pxであるため、想定通りに設定されているが、<h1>
タグのfont-sizeは30 pxであるが、親font-sizeの15 pxに基づいてline-heightが算出されたため、問題が発生した.そのため、これらの問題を避けるために、単位のない数字でline-heightを指定することができます.
Reference
この問題について(line-height:18 pxが使用できない理由), 我々は、より多くの情報をここで見つけました https://velog.io/@ray_/line-heightテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol