Sass 3.5 發佈 了
Natalie Weizenbaum 發佈於 2017 年 7 月 7 日
我很興奮地宣布,我剛剛發佈了 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
<declaration-value>
語法的參數。這將提供與新選擇器更好的向前 相容性。 -
包含佔位符選擇器以及非佔位符的偽選擇器(例如
:matches(.foo, %bar)
)將不再被消除。這與佔位符作為不匹配任何內容的選擇器的定義 一致。 -
您現在可以更改縮排語法檔案中的縮排,只要它仍然定義了一致的樹狀 結構。
還有一些關於 Ruby Sass 不支援的功能的 棄用。
-
擴展複合選擇器(例如
@extend .foo.bar
)已被棄用。這從未遵循 extend 的既定語義:匹配擴展選擇器的元素的樣式就像它們匹配被擴展的 選擇器。當您寫
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 版本,這意味著需要花費大量時間使其 JavaScript API 與 node-sass 相容。
至於 Ruby Sass,我將繼續修復錯誤並隨著瀏覽器開始支援 CSS 的新功能而新增支援。一旦 Dart Sass 1.0.0 發佈,我將在 Ruby 和 Dart 上同時新增新功能,直到一年的支援期結束。
但現在,請執行 gem update sass
並享受 3.5!