重大变化:媒体查询级别 4

Sass 添加了对 CSS Media Queries Level 4 规范的支持。这最初与一些 Sass 特定的语法相冲突,因此该语法已被弃用,现在根据 CSS 标准进行解释。

兼容性:
Dart Sass
since 1.56.0
LibSass
Ruby Sass

由于 Sass 支持带括号的媒体条件中的几乎所有 Sass 表达式,因此通过添加对媒体查询级别 4 的完全支持,有一些结构的含义发生了变化。具体来说:

¥Because Sass supports almost any Sass expression in parenthesized media conditions, there were a few constructs whose meaning was changed by adding full support for Media Queries Level 4. Specifically:

  • @media (not (foo)) 历史上被 Sass 解释为 @media (#{not (foo)}),因此编译为 @media (false)

    ¥@media (not (foo)) was historically interpreted by Sass as meaning @media (#{not (foo)}), and so compiled to @media (false).

  • @media ((foo) and (bar))@media ((foo) or (bar)) 类似地被解释为 SassScript 的逻辑运算符,分别编译为 @media (bar)@media (foo)

    ¥@media ((foo) and (bar)) and @media ((foo) or (bar)) were similarly interpreted as SassScript’s logical operators, compiling to @media (bar) and @media (foo) respectively.

幸运的是,这些在实践中很少出现。

¥Fortunately, these came up very infrequently in practice.

过渡期过渡期 permalink

¥Transition Period

兼容性:
Dart Sass
since 1.54.0
LibSass
Ruby Sass

首先,我们对之前不明确的情况发出了弃用警告。这些将提供有关如何保留现有行为或如何使用新 CSS 语法的建议。

¥First, we emitted deprecation warnings for the previous ambiguous cases. These will have suggestions for how to preserve the existing behavior or how to use the new CSS syntax.