Stylus 媒体(@media)

媒体查询是 CSS 中用于响应不同设备类型、屏幕尺寸或方向的重要工具。通过使用媒体查询,你可以为不同的条件定义特定的样式规则。Stylus 提供了对 CSS 媒体查询的强大支持,使得编写响应式设计更加灵活和简洁。

基本用法

媒体查询的基本结构类似于 CSS 的 @media 规则。在 Stylus 中,你可以直接使用 CSS 语法,也可以采用更简洁的方式表达。下面是一个简单的例子:

上述代码表示当屏幕宽度小于或等于 768px 时,页面背景色将变为浅灰色。

媒体类型

媒体类型允许你根据设备类型应用样式。常见的媒体类型包括 screen, print, all 等。以下是如何在 Stylus 中使用媒体类型:

此示例仅当设备类型为屏幕且屏幕宽度小于或等于 900px 时生效。

多个条件

你可以组合多个条件来创建更复杂的媒体查询。在 Stylus 中,这可以通过简单的逻辑操作符实现:

这里,.header 的字体大小将在屏幕宽度介于 500px 到 700px 之间或者打印时应用。

嵌套媒体查询

Stylus 允许你在嵌套选择器中直接嵌入媒体查询,从而简化代码并提高可读性:

在这个例子中,.container 在所有情况下都将占据 100% 宽度,但在屏幕宽度小于或等于 600px 时会缩小到 50%。

功能函数

除了基本的媒体特性外,Stylus 还提供了多种功能函数来增强媒体查询的能力。例如,可以使用 orientation 函数来检查设备的方向:

该示例会在设备处于纵向模式时隐藏侧边栏。

使用变量

在 Stylus 中,你可以利用变量来管理媒体查询中的断点值,使代码更具可维护性:

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

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

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

这样做的好处在于,如果需要调整断点值,只需修改变量即可。

结合其他 CSS 属性

媒体查询还可以与其它 CSS 属性结合使用,以实现更复杂的设计需求。例如,可以将媒体查询与 Flexbox 或 Grid 一起使用,以创建响应式的布局:

这个例子展示了如何在小屏幕上改变容器的排列方式。

总结

通过使用 Stylus 的媒体查询功能,你可以轻松地为不同的屏幕尺寸和设备类型创建适应性强的设计。从基础的媒体类型和条件组合,到嵌套查询、变量使用以及与其他 CSS 特性的结合,Stylus 提供了丰富的选项来帮助开发者构建现代的响应式网站。

纠错
反馈