如何解决Safari中缩放/变换iframe时出现网格线的问题?
Safari中iframe缩放后出现网格线的解决方法
在Safari浏览器中对iframe应用transform: scale()变换时,常会出现时隐时现的奇怪网格线,这是浏览器渲染缩放内容时的像素对齐或合成层异常导致的。以下是几个实用的解决方法:
添加轻微模糊滤镜
给iframe添加极小值的模糊滤镜,不会影响视觉效果,但能触发Safari重新处理渲染层,消除网格线:<iframe class="position-absolute" style="transform: scale(.7); filter: blur(0.5px);" scrolling="no" src="https://flysumo.com/davidksalazar"></iframe>强制启用GPU加速
通过will-change: transform或backface-visibility: hidden将iframe放入单独的合成层,避免渲染冲突:<iframe class="position-absolute" style="transform: scale(.7); will-change: transform; backface-visibility: hidden;" scrolling="no" src="https://flysumo.com/davidksalazar"></iframe>用容器包裹后缩放
把iframe放在容器内,对容器应用缩放并设置overflow: hidden,隔离iframe的渲染上下文:<div style="transform: scale(.7); overflow: hidden;"> <iframe class="position-absolute" scrolling="no" src="https://flysumo.com/davidksalazar"></iframe> </div>微调元素尺寸
给iframe添加1px的透明边框或内边距,打破异常的像素对齐:<iframe class="position-absolute" style="transform: scale(.7); border: 1px solid transparent;" scrolling="no" src="https://flysumo.com/davidksalazar"></iframe>
内容的提问来源于stack exchange,提问作者David
相关产品推荐
相关产品推荐

