浏览器按住Ctrl+-缩放改变的是什么?

437 阅读2分钟

在chrome打开一个网页按住Ctrl 和+号可以对网页进行缩放

以掘金为例

在css中,改变元素大小通常是transform的scale和zoom。

缩放是改变页面的zoom?

按照这个猜想,那zoom0.8 = ctrl - 80%

缩小的时候好像没有差异,那我们试试放大

放大两倍之后我们发现ctrl已经变成了h5端的适配,而zoom出现了滚动条。

(有兴趣的同学可以留意一下ctrl缩放的过渡,也可以发现这两个的区别)

结论:zoom != ctrl

于是我又猜想

缩放改变的是font-size?

这里我们先聊一下vh和vw的特点

1. vw和vh是前端开发中的一个动态单位,是一个相对于网页视口的单位。

2.系统会将视口的宽度和高度分为100份,1vw占用视口宽度的百分之一,1vh占用视口高度的百分之一。

3. vw、vh和百分比不同的是,百分比永远都是以父元素为参考,而vw、vh是以视口作为参

原文参考

按照h5的rem适配方案,我们用屏幕宽度 / 16 可以动态适配移动端,那Ctrl改变的是html的font-size?

这里我们可以发现,

设置500px宽度的项跟随缩放改变了宽度

设置50vw宽度的项没有改变。

我们再来看一张图

这里我们发现font-size一直是12px,没有改变。

我们继续往下走

逻辑像素和视窗决定了font-size。

而浏览器中逻辑像素与物理像素是对应的。

因此我最终推断

Ctrl缩放改变的是视口大小,即改变的是viewport视口。

这里我们就解释了上面设置vw的元素没有被ctrl缩放影响: 缩放之后视口比例不变,因此div宽度不变。

在PC中,布局视口和可见视口都是同一个,那我们来看Ctrl是怎么影响布局视口。

这里我们引用一个大佬的科普文

即布局视口、视觉视口和理想视口

而在PC浏览器中布局视口和视觉视口都是同一个,因此我们不管是通过document.documentElement.clientWidth还是window.innerWidth获取的值都是相同的值。

最后真相大白:浏览器Ctrl缩放的是viewport视口。

文章引用:viewport深入理解和使用vw\vh介绍