ホームページ > 記事 > ウェブフロントエンド > よく使われる CSS テクニックの理由 (2) 理解していること line-height_html/css_WEB-ITnose
使用する基本的な用語と概念:
Em ボックス: 一般的に使用される font-size 属性と、表示される実際のフォント サイズとの関係は、次の青いボックスのように、フォントの設計者によって決定されます。したがって、 font-size の役割は、特定のフォントの em ボックスのサイズを提供することです (ただし、実際に表示される文字がこのサイズであるという保証はありません。実際の文字は em ボックスよりも高いか低い可能性があります)
コンテンツエリア:
行間: フォントサイズの値と行の高さの値の差です。この違いは実際には 2 つの半分に分割され、半行間隔と呼ばれるコンテンツ領域の上部と下部に適用されます。行間隔は、非置換要素にのみ使用できます。はい、一番上の行と一番下の行がボックスのコンテンツ領域を構成します。
インラインボックス: このボックスは、コンテンツ領域に行間隔を追加することで説明されます。非置換要素のインライン ボックスの高さは、上の図の行の高さである line-height とまったく同じです。
インライン要素の境界線は、コンテンツ領域とその内部および外部のすべての余白を囲む必要があります。
まず第一に、行を知る必要があります。フレーム (平たく言えば、これが行の高さの由来です。インライン フレームによって決まりますか? 行レベルの非置換要素である spam のインライン フレームは、そのコンテンツ領域 (つまり、その em フレーム) です。 、平たく言えば、フォント サイズ) + 上下の行間隔です。上で述べたように、コンテンツ領域は、ブロック レベル要素のボックス モデルのコンテンツ ボックス コンテンツに似ています。border-top、border-bottom を設定した場合でも、margin-top と margin-bottom を自由に設定できます。 、padding-top、padding-bottom はいずれも行の高さには役に立ちません。スパンの場合、行の高さは em ボックスと上の行と下の行の間隔に関係します。ボックスモデルがドキュメントフロー内で要素が占める位置を反映するための必須条件ではない場合、結局のところ、行の高さはドキュメントフロー内で要素が占める高さも反映することになります。 img 置換要素と同様に、span 要素のコンテンツ領域に境界線と内部および外部のスペースが含まれる場合、要素の行の高さに実際に影響します。
パート 2: line-height を使用すると、テキストまたはサブ要素のテキストが垂直方向に中央揃えになるのはなぜですか?
れーい
span要素にはpaddingとborderが設定されていないため、黄色の部分がこの時のspan要素のコンテンツ領域になります このときspan要素が継承するfont-sizeは16px(デフォルトのfont-size)です。 Chrome 上の HTML のサイズは 16px) を追加 コンテンツ領域の上下の行間隔により、span 要素の行の高さが親要素を埋め、テキストが中央に配置されます。親要素のコンテンツの高さは 50px なので、span 要素の line-height を直接 50px に設定すれば完了です。これは、span 要素が中央に配置されることを意味すると誤解している人が多いですが、実際にはそうではなく、span 要素は移動しません。その行の高さは増加します。
参考: 一部の概念は「CSS 権威ガイド」から参照していますが、そのほとんどは私自身が理解しているものです。間違っている場合は、すぐに修正できるようにご指摘ください。