有效,但不推荐单独用它控制字体,因为font-family可继承却易被内联样式或更具体规则覆盖;可靠做法是统一声明table, th, td选择器,并采用含系统字体和通用族的稳健字体栈。

直接给 <table> 加 <code>font-family 有效吗?
有效,但不推荐单独用它控制字体。因为 font-family 是可继承属性,写在 <table> 上确实会让内部所有 <code><td>、<code><th> 继承,但实际中容易被内联样式、更具体的 CSS 规则(比如 <code>td { font-family: monospace; })覆盖,导致失效。
真正可靠的做法是:把字体声明放在更上层的容器(如 <div class="table-wrapper">),或直接作用于 <code>table, th, td 选择器。
- ✅ 推荐写法:
table, th, td { font-family: "Segoe UI", system-ui, sans-serif; } - ⚠️ 避免只写:
table { font-family: "Helvetica"; }(<th> 或 <code><td> 里有内联 <code>style="font-family: Arial;"就会覆盖) - ? 注意:不要依赖
<font face></font>标签——它早已被 HTML5 废弃,浏览器兼容性差,且无法控制字号、行高、粗细等 - 统一字体粗细:
th, td { font-weight: normal; }(或按需设为400/600) - 统一对齐方式:
th, td { text-align: left; } - 如果想保留
<th> 加粗语义但又不让视觉差异过大,建议用 <code>font-weight: 600而非默认的bold,更可控设置字体大小时,
em、rem、px哪个更稳妥?对表格字体大小,
px最直观、最不易出错;rem在响应式布局中更灵活;em容易嵌套放大(比如<td> 里再套 <code><span></span>),慎用。- 固定尺寸场景(如后台管理表格):
table { font-size: 14px; } - 需要随根元素缩放(如适配不同屏幕):
html { font-size: 16px; } table { font-size: 0.875rem; } /* = 14px */ - 避免这样写:
td { font-size: 0.9em; }(若父级<tr> 或 <code><tbody> 也被设了 <code>em,就会层层累积)中文网页里字体栈怎么写才不出乱码?
关键不是堆砌字体名,而是按「系统优先级」+「fallback 保底」排列,并显式声明
lang属性辅助渲染。Windows/macOS/Linux 对中文字体支持差异大,靠单一字体名(如"Microsoft YaHei")必然漏设备。- ✅ 推荐中文字体栈:
font-family: -apple-system, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", system-ui, sans-serif;
- ⚠️ 不要漏掉
system-ui:它是现代浏览器识别系统默认无衬线字体的通用关键字,比硬写"Segoe UI"兼容性更好 - ? 表格加
lang="zh-CN"属性(<table lang="zh-CN">)能帮助某些浏览器/AT 工具正确调用中文字体渲染引擎<p>字体这件事,真正麻烦的从来不是写几行 CSS,而是不同操作系统、不同浏览器、不同用户环境对同一个字体名的实际解析结果可能完全不同。宁可多测两台机器,也别信“本地看着正常就完事了”。</p> </table>
- ✅ 推荐中文字体栈:
- 固定尺寸场景(如后台管理表格):
为什么 th 和 td 字体看起来不一样?
不是字体不同,而是浏览器默认样式在作祟:<th> 默认是 <code>font-weight: bold 且部分浏览器设了 text-align: center,而 <td> 是常规粗细 + 左对齐。这会让相同 <code>font-family 显得“不一样”。











