浏览器进行网页缩放的原理

一开始看到有人说下面这段话,我是不理解的



在没有确定html的width和height为px情况下,是通过缩放html标签的高度和宽度来实现的。道理不难理解,html作为参照物,当你想放大的时候,其实浏览器执行的是缩小html的宽和高。为html设定一个所谓的绝对宽度和高,即px为单位(虽然这个也并非绝对单位),可以清晰的看到html画布的放大和缩小。
但是在设置了HTML的w和h后,其缩放机理还没有摸透,猜测可能是改变了document的宽和高。

前者可以通过浏览器的控制台来查看。

不过,由此可知的是可以设置html的w和d为px,来防止页面元素错位。


作者:wen Joy
链接:https://www.zhihu.com/question/25369178/answer/33374476
来源:知乎


因此我做了一个简单粗暴的demo,如下:


	<div class="wrap"></div>

	<style>
		@media screen and (max-width: 1000px){
			body{
				background-color: red;
			}
		}

		@media screen and (min-width: 1001px) and (max-width: 2000px){
			body{
				background-color: blue;
			}
		}

		@media screen and (min-width: 3000px){
			body{
				background-color: yellow;
			}
		}
	</style>


然后我在浏览器上,看到的效果是,当我放大网页时,页面变成了红色,但是当我缩小页面时,页面变成了蓝色。


再结合上面的那段话,我大概明白了:


浏览器缩放的时候,改变的是html的尺寸。


其实我理解的是,正确的说来,改变的是屏幕的逻辑尺寸。因为对浏览器视口进行放大或者缩小,并没有影响背景颜色,所以改变的并不是html。


假定浏览器初始值是100px,我们在屏幕上看到的是10cm,那么它就是将10cm的物理长度划分成了100份,每一份是1px。


当进行了网页放大,比如视觉上放大了一倍,那么原来代表1px的物理长度区域,只能代表0.5px,也就是说现在10cm的长度,只能表示50px。也就是说,物理上没有变化,但是逻辑上,尺寸缩小了一倍。


比如你屏幕分辨率本来是1000px,网页放大一倍以后,逻辑尺寸就变成了500px。


——如有错误,欢迎指正——

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值