次のhtmlスニペットでfont-sizeがどのように機能するかを理解するのに苦労しています。
.container {
padding: 20px;
}
ul {
margin: 0;
padding: 0;
list-style-type: none;
}
ul li {
margin: 0;
padding: 0;
background: blue;
height: 50px;
line-height: 50px;
color: white;
}
ul li span {
border: 1px solid red;
margin: 0;
padding: 0;
}
#test1 li {
font-size: 48px;
}
#test2 li {
font-size: 42px;
}
<div class="container">
<ul id="test1">
<li><span>Test</span></li>
</ul>
</div>
<div class="container">
<ul id="test2">
<li><span>Test</span></li>
</ul>
</div>
li
要素の高さを正確に50ピクセルにし、テキスト/スパンをその要素の垂直方向の中央に配置する必要があります。すべてが垂直ですが、font-sizeを48pxに設定し、2pxの赤い境界線を設定すると、境界線がli要素の外側に押し出されます。目に見えないパディング/マージンが適用されているようです。
これが「問題」を示すjsfiddleです:http://jsfiddle.net/qtVK3/
Chromeで要素を調べるspan
と、スパン要素の実際の高さが57pxであることがわかります。余分な7pxはどこから来るのですか?