SASS 中的 @media 查询,有哪些需要注意的地方?

阅读时长 3 分钟读完

什么是 @media 查询?

在 web 开发中,我们通常需要为不同的屏幕尺寸或设备类型设计不同的样式,比如手机、平板、电脑等等。而 @media 查询可以让我们针对不同的屏幕和设备应用不同的 CSS 样式。

在 CSS 中,我们可以使用 @media 规则来实现这个功能:

这个规则告诉浏览器,当视口宽度小于等于 768px 时,应用 body 的背景色为粉色。

在 Sass 中,我们同样可以使用 @media 查询,但是有一些需要注意的地方。

Sass 中的 @media 查询

在 Sass 中,@media 查询与普通的 CSS 一样,但是我们可以在其中使用 Sass 变量、混合宏等功能,这使得我们可以更方便地编写复杂的 @media 查询。

举个例子,我们可以定义一个带有 Sass 变量的 @media 查询:

-- -------------------- ---- -------
----------- ------
------------ -------

------ ----------- ----------- -
  --------- -
    -------- -----
  -
-

------ ----------- ------------ -
  --------- -
    -------- ------
  -
-

这个例子中,我们使用了 Sass 变量 $bp-tablet$bp-desktop 来定义断点。在视口宽度大于等于 $bp-tablet 时,.main-nav 元素会被隐藏;在视口宽度大于等于 $bp-desktop 时,.main-nav 元素会显示出来。

我们还可以使用混合宏来编写复杂的样式:

-- -------------------- ---- -------
------ ------------------------ -------- -
  ------ -------
  ------- --------

  ------ ----------- ----------- -
    ------ -----
    ------- -----
  -
-

------ -
  -------- ----------------------- -------
-

在这个例子中,我们定义了一个混合宏 responsive-image,它会让图片在不同宽度的设备上有不同的表现。在视口宽度小于等于 $bp-tablet 时,图片的宽度会变成 100%。

注意事项

虽然 @media 查询在 Sass 中表现出了很强的编程性,但是我们在编写代码的时候仍然需要注意以下几点:

  1. 避免写重复的查询。重复的代码会增加文件大小以及编译时间,降低性能。
  2. 使用适当的命名。对于常见的屏幕尺寸,我们可以使用类似 tabletdesktop 的命名方式,避免使用过于宽泛的名字,比如 smallmediumlarge
  3. 记得添加默认样式。即使我们添加了 @media 查询,我们仍然需要为默认情况添加样式。否则,当浏览器不支持 @media 查询时,会出现无样式的情况。

总结

使用 @media 查询可以帮助我们编写更加灵活的 CSS,同时在 Sass 中可以更方便地实现这一目标。在编写代码的过程中,我们需要注意避免重复的查询、适当命名以及添加默认样式,来提高代码的可读性和执行效率。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/654d56b67d4982a6eb6b4da7

纠错
反馈