媒体查询

  • 2022-08-29
  • 0
  • 0

媒体查询可以看成是浏览器提供的获取⽤户系统参数和设置的接⼝。

需要注意的是,不少前端开发有这么个认知误区,就是认为媒体查询只能用在 CSS 中,就像下面这样:

@media (max-width: 480px) {
    /* css here */
}

实际上不是的,我们在 HTML 和 JavaScript 中也是可以使用媒体查询的。

例如,可以单独把移动端的 CSS 单独提出来:

<link rel="stylesheet" href="default.css">
<link rel="stylesheet" href="mobile.css" media="(max-width: 480px)">

使用媒体查询控制图像资源的加载(想了解更多 <picture> 元素知识,可访问这篇文章):

<picture>
  <source srcset="rect.png" media="(min-width: 480px)">
  <img src="square.png">
</picture>

如果是在 JS 中,可以使用 matchMedia 这个 API 方法判断是不是匹配对应的媒体查询:

if (matchMedia('(max-width: 480px)').matches) {
    // js here
}

注意,在 JS 应用中,如果参数是 CSS 声明(也就是出现了冒号),外面需要有个括号,否则语法不正确,也就是 matchMedia('max-width:480px') 是无效的。

目前,媒体查询应用最多的就是响应式布局的开发。

实际上,meida query 媒体查询除了实现应式开发,我们还可以借助帮助我们提升⽤户体验,这是很多前端开发所不知道的。

评论

还没有任何评论,你来说两句吧

你必须 登录 才能发表评论.