これには負のマージンを使用できますが、注意すべき点があります。
line-height
面白いことです。CSS2.1によると、行の高さは指定されていませんが、行ブロックの最小の高さは指定されています。
コンテンツがインライン レベルの要素で構成されるブロック コンテナー要素では、'line-height'は要素内の行ボックスの最小の高さを指定します。最小の高さは、ベースラインより上の最小の高さと、その下の最小の深さで構成されます。これは、要素のフォントと行の高さのプロパティを持つ幅がゼロのインライン ボックスで各ライン ボックスが始まるのとまったく同じです。その架空の箱を「ストラット」と呼んでいます。(名前は TeX にインスパイアされています。)
ライン ボックスは9.4.2 インライン フォーマッティング コンテキストで定義されています。
インライン フォーマッティング コンテキストでは、ボックスは包含ブロックの上部から順に水平方向に配置されます。これらのボックスの間では、水平マージン、境界線、およびパディングが考慮されます。ボックスはさまざまな方法で垂直方向に配置できます。ボックスの下部または上部を整列させたり、ボックス内のテキストのベースラインを整列させたりできます。ラインを形成するボックスを含む長方形の領域は、ライン ボックスと呼ばれます。
これはCSS3ではほとんど変わりません。少なくともline-stacking
. ただし、問題を直接対象とするプロパティはありません。 の を変更することはできませんline-height
。::first-line
常に適用されます。
とはいえ、当面は負のマージンを使用してください。さらに良いことに、要素を汎用コンテナーにラップします。:first-child
andを使用:last-child
することで、好きなだけ要素を追加できます。
<div>
<h1>I've a text in side heading with multiple lines. Want the spacing the two lines to increase, so I set a line-height. When I do this, not only does it increase space between the two lines, it also increases spacing above the first line.</h1>
<h1>I've a text in side heading with multiple lines. Want the spacing the two lines to increase, so I set a line-height. When I do this, not only does it increase space between the two lines, it also increases spacing above the first line.</h1>
</div>
body {padding:30px;background:yellow;border:1px solid red;margin:0}
div{background:red;margin:0;padding:0;border:1px solid green;}
h1{line-height:2em;}
div > h1:first-child{
margin-top:-.25em;
}
div > h1:last-child{
margin-bottom:-.25em;
}