【css】浏览器缩放后,div实际宽度发生变化

本文讲述了在响应式布局中,当屏幕宽度为375px且浏览器缩放不同时,布局出现错误的现象。作者通过调试发现,浏览器缩放导致设备像素与CSS像素比例变化,进而影响元素尺寸,揭示了这一CSS与设备像素的对应原理。
摘要由CSDN通过智能技术生成

先上图

预期:
为文字与图片设计了响应式布局,
当屏幕宽度 <= 375px时,为上下分布;
当屏幕宽度 >375px时,为左右分布。

bug现象:
当屏幕宽度 = 375px时,
浏览器缩放为100%时,OK;
浏览器缩放为90%时,NG,应为上下结构,但实际显示为左右结构。

debug:
1.调查发现zoom out到90%时,"@media screen and (max-width: 375px)"不再生效,此现象同时发生在zoom in到110%~150%的情况;
2.控制台查看div尺寸,变为375.56,而非375;
3.打印对应区域div的offsetWidth发现结果为376px;
4.查看代码,未发现有明显设定相关div宽度为百分比的地方;
5.通过以上结果,猜测此现象由浏览器缩放功能导致;
6.调查到浏览器缩放原理的相关资料:
https://www.quirksmode.org/mobile/viewports.html
https://www.ianran.cn/?p=58
7.得到结论:
设备像素和css像素是两个概念,浏览器zoom=100%时,设备像素和css像素理解为1:1对应,浏览器zoom=90%时,设备像素:css像素 = 0.9:1 = 1.111:1,即1个设备像素约对应1.111个css像素,于是造成了视觉上的缩小。可能浏览器在计算后得到的值存在小数或误差,因而造成了div尺寸的改变。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值