<font>和<center>必须立即废弃,因其破坏CSS继承、干扰现代布局、锁死样式逻辑且被开发工具标红警告;应按语义重构为CSS类或合理布局属性。
<font>和<center>不能“留着等以后再改”它们不是“还能跑”,而是正在拖垮可维护性:浏览器虽仍解析,但<font color="red">的样式优先级会干扰 CSS 继承链,<center>在 Flex/Grid 容器里直接失效,且 VS Code、HTMLHint 等工具已默认标红警告。更关键的是,它们把样式逻辑锁死在 HTML 结构里——改一个颜色要 grep 全站 HTML,而不是改一行 CSS。
<center>而不翻车别无脑套 text-align: center,先看内容类型:
<img>、<span>这类行内内容 → 给父容器加 text-align: center
<div>、<section>)→ 设 margin: 0 auto + 显式 width 或 max-width
display: flex; justify-content: center; align-items: center,且必须设高度(否则 align-items 无效)<center><table>...</table></center> → 直接删 <center>,给 <table> 加 margin: 0 auto
常见坑:text-align: center 对子元素是 display: block 的完全无效;margin: 0 auto 不设宽等于没写。
<font>替换成 class 还是 style 属性?二者都不推荐——style="color:red" 和 <font> 本质一样,都是把表现塞进结构。真正该做的是语义化归类:
立即学习“前端免费学习笔记(深入)”;
<font color="red" size="4">错误提示</font> → 改成 <p class="error-message">错误提示</p>,CSS 写 .error-message { color: #d32f2f; font-size: 1.25rem; }
<font face="Arial">标题</font> → 删标签,统一在 body 或 :root 设 font-family: Arial, sans-serif
size="4" → 它没有标准像素值(Firefox 是 13.33px,IE 是 14px),直接用 rem 或 clamp()
注意:<font> 的 color 属性在某些 Safari 版本会被忽略,而 CSS 规则不会。
不是所有旧标签都“看起来还在工作”:
<center> 嵌套在 display: grid 容器里,可能触发怪异模式(quirks mode)回退<font> 和 bgcolor 这类属性绕过 CSS cascade,!important 都压不住<u> 和 <strike>,它们语义完全不同:<u> 应只用于拼写标注或注音,视觉下划线必须走 text-decoration: underline
<center>.*?</center> 会漏掉换行或嵌套,建议用 HTML 解析器(如 Cheerio)而非 sed/grep真正卡住进度的,往往不是技术替换本身,而是没理清“这个居中/颜色到底表达什么意图”——是强调?错误?标题?还是纯临时调试?意图不清,CSS 类就难命名,后续就还得返工。