You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现鼠标悬停放大字体且不挤压其他DOM元素?

解决Grid元素悬停放大字体不挤压其他元素的问题

直接修改font-size会改变元素的盒模型尺寸,触发Grid布局重计算,导致其他元素晃动。用transform: scale()可以实现视觉上的字体放大,且不会改变元素在文档流中的占位大小,完美解决这个问题。

修改后的代码示例

CSS

.links {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  padding: 0 20px;
}

li {
  border: 3px solid red;
  padding: 20px;
  list-style-type: none;
  white-space: nowrap;
  font-size: 1rem;
  /* 添加过渡让缩放更平滑 */
  transition: transform 0.2s ease;
}

li:hover {
  /* 缩放1.1倍,对应原需求的10%放大 */
  transform: scale(1.1);
  /* 可选:设置缩放原点,默认是元素中心 */
  /* transform-origin: left center; */
}

HTML

<ul class="links">
  <li><a href='csc'>1</a></li>
  <li><a href='csc'>2</a></li>
  <li><a href='csc'>3</a></li>
  <li><a href='csc'>4</a></li>
  <li><a href='csc'>5</a></li>
  <li><a href='csc'>6</a></li>
</ul>

补充说明

  • transform: scale()是在元素的渲染层进行缩放,不会影响文档流中的布局,所以其他Grid元素不会被挤压。
  • 加上transition属性可以让缩放过程更平滑,提升交互体验。
  • 如果需要更精准控制缩放的位置,可通过transform-origin设置原点(比如left center让字体从左侧开始放大)。

内容的提问来源于stack exchange,提问作者Yusuf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 20:35:24