CSSの仕様では、指定された値を2で割って上下に1行のテキストを適用することによって、行の高さをテキストに適用する必要があると規定されています。従来の先頭とCSSの行の高さ
これは、伝統的な先行理解とは大きく異なります。これは通常、テキストの行の上にだけスペースが追加されることを意味します。 (これは100%正確ではないことが分かっています。なぜなら、実際に行の高さはスペースを追加せずに行の高さを設定するからです;しかし、この方法で問題を簡単に説明できます)。
この例マークアップを考える:
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
p
{
margin:0;
font-size: 13pt;
line-height: 15pt;
}
h1
{
margin:0;
font-size: 21pt;
line-height: 30pt;
}
</style>
</head>
<body>
<h1>Title</h1>
<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s.</p>
<p>Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).</p>
<p>It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc.</p>
</body>
</html>
行の高さが先頭の伝統的な理解に等しかった場合、<h1>
と第<p>
との間の距離が<p>
「Sとの間の距離に等しくなり、この距離ため先頭に定義されます。しかし、そうではありません。
<p>
の間の距離が(p's line-height - p's font-size = 15 - 13 = 2pt
)一貫性を維持しながら、<h1>
と第<p>
との間の距離が異なっている:それは(p's line-height - p's font-size)/2 + (h1's line-height - h1's font-size)/2 = (15 - 13)/2 + (30-21)/2 = 5.5pt
に等しいです。
これは、上記のマークアップがブラウザで処理されている場合は、目に見えることがあります。
問題は、ページ上に垂直方向の視覚リズムを維持する伝統的な方法は、基本的なリーダーの倍数で要素の先頭を設定することです。上記のように、このメソッドはCSSでは適用できません。
私は3つの質問を持っている:
- は、行の高さの私の理解ですリードすると、その違いが正しいですか?
- CSSで縦型リズムを維持する方法はありますか(CSSで伝統的な方法を模倣するかどうか)
- (ボーナスの質問)行の高さを先導と異なるようにする理由は何でしたか?
更新日:入力いただきありがとうございます!私は自分のソリューションを提案し、私はそれ上の任意のコメントのために非常に感謝されると思いますので、予めご了承ください。https://stackoverflow.com/a/8335230/710356
ありがとうございます!しかし、リンク先のデモは空のgifファイルであるようです。また、あなたのコードに負の値はありません。 – sbichenko
申し訳ありませんが、私はリンクを修正し、私が負の値を使用しなかったことを思い出しました。 :-) – bookcasey
実際には垂直リズムを維持するために、ポジショニングを使う必要はありません。これは、一貫した行の高さ(フォントサイズに相対)と下マージンを確保することによって行うことができます。 – joshnh