首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >媒体查询背后是什么?为什么媒体查询(宽度)比Javascript调整大小事件更好?

媒体查询背后是什么?为什么媒体查询(宽度)比Javascript调整大小事件更好?
EN

Stack Overflow用户
提问于 2021-06-17 15:42:08
回答 1查看 230关注 0票数 1

我读过一篇文章说Javascript事件‘调整大小’会激发每个像素,并且具有宽度的媒体查询会更好,但是我没有发现任何关于媒体查询背后的内容。我看不出这是怎么可能的,因为没有每一个像素都有媒体查询操作,甚至浏览器也需要知道每个像素大小的变化。那么,为什么媒体查询应该比Javascript调整大小事件更好(至少对于宽度的改变是这样)?

对不起,如果我的英语有任何错误,那不是我的母语。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-17 15:48:24

实际上,javascript调整大小事件您必须关注很多事情,例如: clientWidth、clientHeight、innerWidth、innerHeight、outerWidth、outerHeight、offsetWidth和/或offsetHeight属性。

对于媒体查询,当某些条件为真时,它也适用,不仅如此,它还有更多的好处,你可以在这里找到。

https://www.w3schools.com/css/css_rwd_mediaqueries.asp

而且,它们完全不同,调整大小是在调整视口大小时发生的DOM事件。在媒体查询中,有更多的属性,比那些连接到视口大小的属性多。您可以通过媒体控制布局,导入样式规则等。

CSS的加载速度比Javascript快。当html呈现时,javascript将起作用。如果在呈现html或特定html标记之前加载javascript,它将无法工作。因此,媒体查询是更好的选择。是时候改变您使用调整大小函数的高级方式了。::)

编辑过的

在这里,我可以想到三个重要的问题:

JavaScript support --如果客户端在浏览器中禁用JS,onresize根本不会触发。如今,用残疾的JS上网几乎是不可能的,但仍然是一个值得关注的问题。

动画--如果您计划从一个窗口到另一个窗口进行动画化,那么CSS动画就是最好的选择,尤其是在移动设备上。CSS动画在可用时使用硬件加速,因此非常快速和高效,消耗更少的CPU,运行更顺畅。您仍然可以使用onresize从JS (添加类、更改动画CSS属性)触发CSS动画,但请考虑3。

DOM遍历--无论是JS代码,还是内部浏览器,为了操作DOM,都必须遍历它。CSS属性通过遍历DOM并根据CSS选择器匹配元素而应用于DOM元素。浏览器供应商不断优化这一过程,并尽可能提高效率。当然,这也取决于您如何编写CSS,但浏览器优化您的选择器内部一次,并多次应用它们。另一方面,为了执行任何操作,JS还必须遍历DOM。但是使用JS,取决于您的DOM遍历效率(document.all、document.getElementById、document.querySelector等)。我将尽可能使用媒体查询和由媒体查询规则或其他JS事件触发的CSS动画。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68022540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档