直接用 td:hover { font-size: 1.3em; line-height: 1.2; transition: font-size 0.2s ease; } 即可,优先使用 em/rem/% 单位,配合 line-height 和 overflow 控制溢出,避免 JS 干预。

用CSS :hover 直接改 font-size 最简单
直接给 常见错误:写成 能用纯 CSS 实现的交互,就别绕一圈 JS。手动监听 典型翻车点: 字号变大后,文字上下位置容易偏移,尤其在 推荐组合: IE6–8 只支持 另一个隐蔽坑:
实际效果取决于你是否预留了足够的单元格内边距和行高余量,以及是否考虑了缩放、字体加载延迟等边界情况。最稳的写法永远是:CSS 控制状态,HTML 保持语义,JS 只在必要时介入。 或 加 :hover 伪类,改 font-size 就行,不需要 JS。注意字号单位别用 px —— 固定像素在缩放或响应式场景下会失灵,优先用 em、rem 或 %。td:hover { font-size: 18px; },结果鼠标移入后文字突兀变大,还可能撑破单元格。正确做法是预留空间或配合 overflow: hidden 或 white-space: nowrap 控制溢出。
font-size 改变会触发布局重排(reflow),如果表格列宽是 auto,字号变大可能导致列宽跳变transition: font-size 0.2s ease,但避免对整个 table 设置,只作用于 td, th
touchstart 模拟,但通常不建议为字号做这事为什么不能只靠 JavaScript 动态改 style.fontSize
mouseover/mouseout 去改 style.fontSize,不仅代码冗余,还会覆盖内联样式、破坏 CSS 优先级,且无法利用浏览器原生的伪类缓存优化。td.addEventListener('mouseover', e => e.target.style.fontSize = '1.4em') —— 这样写会让后续 CSS 的 font-size 声明失效,除非你同步清理 style.fontSize,否则移出后字号回不去。
mouseout 并重置为 ''(空字符串),否则内联样式残留.small-text),JS 直接写 style.fontSize 会盖掉它,维护性差表格里字号变化影响对齐?试试 line-height 和 vertical-align
vertical-align: middle 的单元格里。单纯调 font-size 不够,得同步控制行高和对齐方式。td:hover { font-size: 1.3em; line-height: 1.2; }。注意 line-height 用无单位数值(如 1.2),它会随字号缩放,比写 24px 更稳。
padding 补偿字号变化 —— 容易导致 hover 前后单元格高度不一致display: flex 居中,hover 时记得也调整 align-items 或子元素 margin,否则文字会“上浮”rowspan/colspan)hover 时,相邻单元格不受影响,但视觉上可能显得不协调,需统一设计规则IE 里 hover 失效?检查 DOCTYPE 和触发元素
a 标签的 :hover,但现代 IE(9+)和所有主流浏览器都支持任意元素。如果你在旧项目里发现 td:hover 不生效,大概率是文档没声明 ,导致 IE 进入怪异模式(Quirks Mode)。 父容器设置了
overflow: hidden,而 hover 放大后的文字超出单元格又没设 overflow: visible,看起来像“没变大”,其实是被裁掉了。
font-size 确实被应用,且没被更高优先级的 CSS 覆盖td 的 font-size: inherit,此时 hover 规则必须更具体,比如写成 table td:hover
!important 解决优先级问题——它会让后续调试和主题切换变得困难
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











