Sass 3.5 已 发布
发布于 2017 年 7 月 7 日,作者 Natalie Weizenbaum
我很高兴地宣布,我刚刚发布了 Sass 3.5 的稳定版本。此版本专注于与新的CSS 语法兼容,并为即将推出的模块系统以及与Dart Sass的兼容性奠定基础。
3.5 中的大多数主要功能已在候选发布版本中,您可以在这里阅读相关内容。但自那时起,还添加了一些其他更改。
-
Sass 现在支持
::slotted()
伪元素,包括扩展其选择器 参数。 -
var()
函数 可以安全地传递给CSS 颜色函数rgb()
、rgba()
、hsl()
和hsla()
。 -
由 Sass 的颜色函数创建的透明颜色现在将写为
rgba(0, 0, 0, 0)
而不是transparent
,以解决 Internet Explorer 中的错误。在文档中写为transparent
的颜色仍将按原样发出。
Dart Sass 兼容性Dart Sass 兼容性 永久链接
上个月我写了关于我们短期内保持 Ruby Sass 与 Dart Sass 兼容的计划。Sass 3.5 开始实施这些计划,通过添加对 Dart Sass 添加的一些小型行为扩展的支持。
-
@extend
一个出现在样式表中但无法统一的选择器不再是错误。扩展错误的目的是防止拼写错误,而这种情况在这种情况 下并没有发生。 -
接受参数的伪选择器现在可以接受任何匹配CSS 的
<declataion-value>
语法 的参数。这将为新的 选择器提供更好的向前兼容性。 -
包含占位符选择器和非占位符的选择器(例如,
:matches(.foo, %bar)
)将不再被消除。这与占位符的定义一致,占位符是一个与 任何内容都不匹配的选择器。 -
现在您可以在缩进语法文件中更改缩进,只要它仍然定义一致的树 结构。
还有一些对 Ruby Sass 中不支持的功能的弃用。
-
扩展复合选择器,如
@extend .foo.bar
,已被弃用。这从未遵循扩展的既定语义:匹配扩展选择器的元素将被样式化为与扩展 选择器匹配。当您编写
h1 {@extend .a.b}
时,这应该意味着所有h1
元素都被样式化为与.a.b
匹配——也就是说,它们拥有class="a b"
,这意味着它们将分别匹配.a
和.b
。但我们只扩展包含两者.a
和.b
的选择器,这是 不正确的。 -
颜色运算已被弃用。逐通道运算与颜色直观的理解不符。Sass 的颜色函数 套件是一种更简洁、更易于理解的动态操作颜色的方法 。
-
引用组合符
/foo/
已被弃用,因为它已在CSS 规范中存在一段时间,并且很快将从 Chrome 中删除。 -
旧式的
:name value
属性语法已被弃用。这种语法使用不广泛,并且不必要地与 CSS 不同。
LibSass 兼容性LibSass 兼容性 永久链接
LibSass,Sass 的 C++ 实现,正朝着与所有这些功能兼容的方向发展。它还没有完全实现,但我们决定不想将 3.5 版本的发布阻挡在 100% 兼容性上。LibSass 将在实现 这些功能时发布它们。
下一步下一步? 永久链接
在最紧迫的将来,我将休假几个月,因此不太可能进行大量的工作。一旦休假结束,我将专注于让 Dart Sass 达到完整的 1.0.0 版本,这意味着要花费大量时间使其 JavaScriptAPI 与node-sass 兼容。
就 Ruby Sass 而言,我将继续修复错误,并添加对CSS 功能的支持,因为浏览器开始支持它们。一旦 Dart Sass 1.0.0 发布,我将在 Ruby 和 Dart 中同时添加新功能,直到一年的支持期 结束。
但现在,运行 gem update sass
并享受 3.5!