line-height
CSSプロパティがテキストをこのボタンの中央に垂直に配置する理由を理解しようとしています:
.btn-order {
width: 220px;
height: 58px;
font-size: 24px;
padding: 0;
text-align: center;
vertical-align: middle;
line-height: 58px;
border: 1px solid black;
}
<div class="btn-order">Complete Order</div>
line-height
プロパティは、基本的に29px
(29 + 29 = 58)テキスト行をテキストの上下に設定しています "完全な注文」。この下に別のテキスト行を追加すると、このテキストの下に58px
が表示されます。ここでは、テキストを中央に配置するためにのみ行の高さを設定しています。
この概念を理解するのに役立つスライドショーを次に示します... line-height
そして、これは私が話していることのあなたのコードを使用した例です: http://jsfiddle.net/YawDF/14/
line-height
を58px
に設定することで、ブラウザにテキスト行の上下に半分を残して、各行の間に「58px」のギャップを作り、最初の行の上に「29px」のギャップのみを作るように指示しています。
サイド注:表示しているコードでは、vertical-align: middle
を使用しても意味がありません。まとめて取り出せます。
生成するテキストは独自の行ボックス内にあります であり、vertical-alignはそのボックス内の配置に使用されます。ただし、そのボックスは、テキストをラップしたdivとは関係ありません。 divの高さを58pxに設定しますが、それは行テキストボックスの高さに影響しません。そのため、divの高さに合わせてline-heightが必要です。
段落が分割に挿入されるときはいつでも、最初の行とdivの上枠の間の距離は、行の高さの半分です。つまり、デフォルトの行の高さが1pxの場合、最初の行と上枠の間の距離divは0.5pxです。
height:58px
の分割がある場合、線とdivの上部境界線の間の距離は29pxであり、線と下部divの境界線の間の距離は、=(合計div高さ-距離b/w線と上部の境界線)は58px-29px = 29pxです。これにより、線は中央で垂直に配置されます。
また、line-heightを使用してテキストを中央揃えにする場合は、vertical align:middle
(1行以下のテキストの場合)を使用する必要はありません。
line-heightは、段落の見栄えを良くするテキストの高さを定義するので、行の高さを大きくすると高さが増加し、テキストの垂直方向の配置の効果をより明確に見ることができます。
これは私たちの子供たちが英語を学ぶために使用するノートであると思います-保育園のクラスで書く
仕様によるものです。 CSSパーサー(ブラウザなど)がテキストの高さがわからない場合、テキストを垂直方向に正しく配置できません。
line-height
プロパティのデフォルト値があることに注意してください。