为什么正文中的字体大小不会影响表格中的字体,除非我添加 1em?

5ar*_*gon 1 html css fonts font-size

<style>
body {
    font-size: 14px;
}
</style>

<body>
Text outside table.
<table>
    <tr><td>Text inside table.</td></tr>
    <tr><td>Text inside table.</td></tr>
    <tr><td>Text inside table.</td></tr>
</table>
</body>
Run Code Online (Sandbox Code Playgroud)

我正在尝试为我的网站指定基本字体大小,因此在其他地方我可以使用百分比或 em 来指定大小。

上面的 html 代码,没有body样式的字体大小相同。但是,为什么font-size在body上面的样式中,只有“表格外的文字”。受到尺寸变化的影响?不是所有东西都封装在里面<body>吗?

我需要添加

table {
    font-size: 1em;
}
Run Code Online (Sandbox Code Playgroud)

为了使我的表格中body的字体遵循的字体大小。为什么<div>我的页面中的其他s不是这种情况?这些<div>小号做后续body的font-size很好。

Juk*_*ela 5

您的页面正在以Quirks Mode呈现,可能是因为它doctype在开头缺少字符串或以doctype解释为非标准的字符串开头。

它是怪癖模式的一部分,即使在“HTML5 怪癖模式”(它试图标准化一些常见怪癖)的有限意义上,表格也不会继承字体属性。这在 HTML 5 中的一个关于呈现表的条款中被正式定义。那里的定义使用了initial关键字,这还不是很标准,但它只是表示 CSS 规范中定义的属性的初始值。因为font-size,确实如此medium。

如果这是一个旧页面,最好忍受这些怪癖并明确声明表格的字体属性,例如

body, table { font-size: 14px }
Run Code Online (Sandbox Code Playgroud)

(并不是说我会推荐这种不灵活的做法)。

如果这是关于您正在创建的新页面,请将其放在<!doctype html>开头并始终使用“标准”HTML 和 CSS。