CSS transform

当使用CSS transform: translate()或scale()可能导致元素边缘模糊,因为非整数像素偏移。浏览器将图层拆分到GPU处理,导致字体等渲染不精确。解决方案包括避免使用transform,确保计算值为整数,或者尝试使用webkit-font-smoothing: antialiased,以及使用calc()计算像素对齐。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

transform

使用会出现模糊问题;

<aside> 💡 元素的边缘应该和像素点对齐,但是元素作用了 transform: translate() 或者 transform: scale() 后的计算值产生了非整数计算的结果并非整数的像素点,导致本来一个像素能渲染的内容,没有完全归纳在其像素点内,导致出现模糊的情况;

</aside>

<aside> 💡 由于浏览器将图层拆分到 GPU 以进行 3D 转换,而非整数的像素偏移,使得 Chrome 在字体渲染的时候,不是那么的精确;

</aside>

示例

 

解决方法

  • 放弃使用transform
  • 如果确定宽、高的情况下,使 transform 计算后的值为 整数;
  • webkit-font-smoothing: antialiased (未测试,不一定生效);
  • transfrom:translate(calc(-50% + 0.5px),calc(-50% + 0.5px));

Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.A new tool that blends your everyday work apps into one. It's the all-in-one workspace for you and your teamhttps://serious-lose.notion.site/CSS-transform-0bc7173bb1fe4279bcec8c9ba5dbc58b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值