【问题标题】:Setting body { font-size: 100% } results in font-size: 12px; and not font-size: 16px; Why?设置 body { font-size: 100% } 会导致 font-size: 12px;而不是字体大小:16px;为什么?
【发布时间】:2013-07-25 16:47:59
【问题描述】:

我知道浏览器的默认字体大小是 16px。那么为什么 inline-block(12px) 的高度与字体大小相同(我在 Chrome 和 FF 中尝试过)?请帮我理解。谢谢。

<!DOCTYPE html>
<html>
<head>
    <style>
        body {
            font: 100% helvetica, arial, sans-serif;
            line-height: 1.625;
        }
        #tempTest {
            display: inline-block;
            width: 10px;
            height: 12px;
            background-color: orange;
        }
    </style>
</head>
<body>
<p class="heading"><span id="tempTest"></span>Remember, when you were young, you shone like a sun. Shine on you crazy diamond</p>
</body>
</html>

【问题讨论】:

  • “记住,当你年轻的时候,你就像太阳一样闪耀。闪耀在你疯狂的钻石上”。鼓舞人心。对不起,我跑题了。
  • 在我的浏览器中我看到 16px
  • 你还没有考虑下降。 R 高 12 像素(Opera 12)。如果从 R 的顶部到 y 的底部测量,它测量的是 15px,这在我的书中已经足够接近 16px,因为每个浏览器的文本呈现不同.
  • 谢谢@cimmanon。回想起来,这似乎很明显。我试图让 R 的顶部与另一个元素对齐并最终得到了这个问题。

标签: css font-size


【解决方案1】:

如果您使用浏览器的开发人员工具检查内联框(按 F12 打开它们),您可以看到它的高度确实是 12 像素,如您的代码中设置的那样。发生这种情况是因为其中没有任何东西需要更高的高度。通常,内联块高度的精确计算取决于浏览器。

文本的字体大小仍然是浏览器的默认值,通常为 16 像素。字体大小并不意味着任何特定字母的高度。它只是字体的基本属性;排版师通常会设计字符,使它们与升序、降序和变音符号一起符合字体大小设置的限制(或稍微超出它们),并且通常大多数字母的高度较小。

【讨论】:

  • span 元素的底部与字母 R 的底部对齐对我来说确实有点奇怪,因此这意味着它不是垂直居中的行高。我假设字体大小(字体高度)始终以行高垂直居中。
  • @KayaToast,vertical-align的初始值是baseline,在这里应用。设置display: inline-block 不会改变这一点。字体高度通常以行高为中心,但这不是必需的;由浏览器决定。但这与基线下方和大写字母高度(大写字母的高度)上方的间距问题(在字体高度内)不同——这些取决于字体设计者。
  • “发生这种情况是因为其中没有任何需要更多高度的东西” - 即使内容更大,高度不会仍然是 12px 吗?我的理解是子元素只会溢出到 inline-block span 的边界之外。
猜你喜欢
  • 2020-05-17
  • 1970-01-01
  • 2013-07-16
  • 2012-05-20
  • 2013-03-08
  • 1970-01-01
  • 2014-07-04
  • 2011-02-19
  • 2011-06-28
相关资源
最近更新 更多