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

直接给 <table> 加 font-family 有效吗?
有效,但不推荐单独用它控制字体。因为 font-family 是可继承属性,写在 <table> 上确实会让内部所有 <td>、<th> 继承,但实际中容易被内联样式、更具体的 CSS 规则(比如 td { font-family: monospace; })覆盖,导致失效。
真正可靠的做法是:把字体声明放在更上层的容器(如 <div class="table-wrapper">),或直接作用于 table, th, td 选择器。
- ✅ 推荐写法:
table, th, td { font-family: "Segoe UI", system-ui, sans-serif; } - ⚠️ 避免只写:
table { font-family: "Helvetica"; }(<th>或<td>里有内联style="font-family: Arial;"就会覆盖) - ? 注意:不要依赖
<font face>标签——它早已被 HTML5 废弃,浏览器兼容性差,且无法控制字号、行高、粗细等
为什么 th 和 td 字体看起来不一样?
不是字体不同,而是浏览器默认样式在作祟:<th> 默认是 font-weight: bold 且部分浏览器设了 text-align: center,而 <td> 是常规粗细 + 左对齐。这会让相同 font-family 显得“不一样”。
- 统一字体粗细:
th, td { font-weight: normal; }(或按需设为400/600) - 统一对齐方式:
th, td { text-align: left; } - 如果想保留
<th>加粗语义但又不让视觉差异过大,建议用font-weight: 600而非默认的bold,更可控
设置字体大小时,em、rem、px 哪个更稳妥?
对表格字体大小,px 最直观、最不易出错;rem 在响应式布局中更灵活;em 容易嵌套放大(比如 <td> 里再套 <span>),慎用。
立即学习“前端免费学习笔记(深入)”;
- 固定尺寸场景(如后台管理表格):
table { font-size: 14px; } - 需要随根元素缩放(如适配不同屏幕):
html { font-size: 16px; } table { font-size: 0.875rem; } /* = 14px */ - 避免这样写:
td { font-size: 0.9em; }(若父级<tr>或<tbody>也被设了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 工具正确调用中文字体渲染引擎
字体这件事,真正麻烦的从来不是写几行 CSS,而是不同操作系统、不同浏览器、不同用户环境对同一个字体名的实际解析结果可能完全不同。宁可多测两台机器,也别信“本地看着正常就完事了”。



















