すべての要素に対して、
font-size
をline-height
設定するグローバルリセットがあります。inherit
* {
font-size: inherit;
line-height: iherit; }
についてhtml
は、明示的に定義します。
html {
font-size: 16px;
line-height: 1.25em; } /* 16×1.25 = 20 */
これは相対単位line-height
で設定されていることに注意してください。
についてh1
は、異なるフォントサイズを定義します。
h1 {
font-size: 4em; }
h1
の親戚を継承することline-height
を期待してい1.25em
ます。結果の行の高さは80px(16×4×1.25)に等しくなります。
しかし実際には、h1
のline-height
は等しいままです20px
(これは、のと同じhtml
です:16×1.25 = 20)。
たとえば、次のHTMLがあります。
<p>foo<br>bar</p>
<h1>foo<br>bar</h1>
結果のスクリーンショット:
この問題を回避するには、継承するのと同じ値に明示的に等しいを定義する必要がありh1
ますline-height
。
h1 {
font-size: 4em;
line-height: 1.25em; }
その後、line-height
正しくなります:
相対値が最初に絶対値に計算され、次に絶対値が継承されるように見えます。font-size
または、要素のではなく、親のに関連して継承されている可能性がありfont-size
ます。
質問
- なぜ親戚
line-height
が正しく継承されないのですか? - 親ではなく
line-height
、要素の相対的な値として相対を継承するにはどうすればよいですか?font-size
PSタイトルにも同様の問題がある質問がありますが、詳細は異なります。