1
我已經使用SASS幾天了,並且遇到了某個問題。SCSS:Mixins只能在文檔的根目錄下定義
這裏呈現完美的SCSS:
@import "light";
@import "basic";
@import "fancybox";
因爲它是一個用戶的風格,火狐需要@ -moz-文件規則的所有站點特定的CSS,像這樣:
@namespace url(http://www.w3.org/1999/xhtml);
@-moz-document domain("clubfile.ru"){
@import "light";
@import "basic";
@import "fancybox";
}
不幸的是,這不起作用,編譯器返回一個錯誤:
Mixins may only be defined at the root of a document
以及在_basic.scss中對mixins的引用。寶石版本是Sass 3.1.20和Compass 0.12.2。
那麼,有沒有辦法解決或忽略該錯誤?
更新1:我認爲-moz規則的語法,類似於SCSS mixins,造成了所有的麻煩。
「basic」包含所有的定義。我試過兩種移動它們的方法: 1.創建_mixins並將其導入到根scss文件中的其他導入之前。然後我得到「未定義的mixins錯誤」。 2.在導入之前,按照在根scss中定義mixins。效果很好,但在衆多文件中使用相同的內容會對DRY造成干擾。 – 2012-07-17 17:28:04
「輕」,「基本」和「fancybox」部分?如果不是,他們可能應該是。導入直接編譯Sass文件是不好的做法。如果你將它們轉換成partials,他們會停止抱怨未定義的mixins,因爲它們不會被編譯,直到一個文件導入它們(並且你將在上面導入_mixins)。 – Jackie 2012-07-17 17:58:47
在根目錄開始時使用單獨的mixins進行編譯。感謝幫助。 – 2012-07-18 07:12:33