sass的compass已經半年沒有更新了,是否需要考慮轉型到別的css預編譯器和框架?
目前在這個團隊做架構和負責人,團隊成立時間較短,目前使用的是sass+compass的方案。
半年沒更新是指compass對應的github項目,半年沒有commit了,積攢了大量未處理的issue和pr,github鏈接:https://github.com/Compass/compass請各位老師從遷移成本、易用性方面考慮,盡量少用專門推薦自家工具的答案形式。
首先謝邀。
先說說Compass的歷史使命吧。Compass的出現是為了迎合Sass,也可以說其類似於CSS中的Bootstrap。而其有幾大功有是Sass底層未有的:
- CSS3屬性的前綴
- Sprites(雪碧圖)
- Vertical Rhythm
- mixin和function的集合
- Grids系統
- 三角函數
另外從其官網的描述就能明白Compass主要用來做什麼:
Sass is an extension of CSS3 which adds nested rules, variables, mixins, selector inheritance, and more. Sass generates well formatted CSS and makes your stylesheets easier to organize and maintain.
隨著技術的向前發展以及相關前端工具的出現,那麼Compass早期所具備的特性也變得更佳弱化了。
- CSS3的前綴不在依賴於CSS預處理器的mixin完成,而是使用類似於PostCSS後處理器的Autoprefixer這樣的插件
- Sprites目前也可以使用Grunt或Gulp這樣的自動化工具來完成
- Vertical Rhythm可以通過原生的Sass來完成,比如Sass baseline這樣的庫,其功能就類似於Vertical Rhythm
- mixin和functions的集合也變得不是Compass的特長,只要長期使用Sass的同學,或多或少都會有自己的Mixins/functions/helpers的積累,而且網上類似的集合也非常的多
- Grids系統,目前Susy是最為強大的一種
- 對於三角函數,目前還很少有類似的Sass相關的獨立庫,不過有部分的三角函數,比如正切函數
如果你對Compass有所了解之後,我想做為一個團隊是不會選擇Sass + Compass做為樣式上的處理方式,我更趨向於直接在項目中使用CSS的預處理和後處理的配合。預處理能更好的幫助你開發,降低成功,減輕維護困難,而且到現在也是較為成熟的一個處理工具,同時Sass團隊也在不斷的更新,並且推出編譯性能更好的,比如LibSass和NodeSass之類。編譯出來的CSS可以藉助PostCSS來做後處理,其樣式更接近於規範。
相關Sass的資料可以點擊:sass | 博客自由標籤
另外從遷移程度來說,只要看你的項目中使用了Compass哪些特性,如果特性使用的不多,遷移起來還是較為簡單。
這也是我一直不在項目中使用Compass,只使用Sass和PostCSS的原因。可以不用compass了, 文檔寫的不好Compass Documentation 根本就沒寫完 所以我想用也用的很辛苦
推薦一個新的
現在很多sass的項目都用 這個 Bourbon - A Lightweight Sass Tool Set 現在我工作和自己搞點東西都在用
好處: 非常輕量級(lightweight) 提供了各種好用的mixin,文檔寫的好,各種例子Bourbon - Documentation他還有一系列的配套工具, 結合起來 非常好用 在他們網站的導航條上就可以看到有
Bourbon Neat neat 好用的grid systemhttp://bitters.bourbon.io/bitters 基本的樣式 有點normalize的意思
Refills - Patterns refills 各種定義好的components的樣式這幾個工具結合在一起 你可以好好感受一下sass已經很成熟了,如果不喜歡compass可以自己積累一個
sass和compass的關係如同js與jquery。sass現在其實就是一門編程語言,而compass則是在此基礎上封裝的一個類庫,既然是類庫就是針對業務的某些方面要解決的問題而設計的。讀過github上的compass源碼,他跟基於less的bootstrap要解決的問題類似,解決的是整個網站業務的問題,覆蓋的大而全,功能也非常多。考慮的太周全會造成任何一個業務都不能100%用到compass提供的所有功能,因此使用見仁見智。可以選擇你需要的一部分使用,也可以像我一樣自己造輪子寫sass框架
sass 是一種base 的預編譯系統compass 就像是jquery之於js,是一個工具的集合。他可以被現在 的 如bootstrap + 構建工具來替代。所以compass 更不更新 和 投奔那個預編譯系統沒關係。
compass作者已在Github上說了不在支持更新了,我今天才看到~~~
推薦閱讀:
※為什麼要用compass?
※如何高效的載入scss文件?
※css 當中如何實現一個元素的hover, focus 狀態改變其他元素的樣式?
※如何實現視差滾動效果的網頁?
※display:inline 的元素不能用於清除浮動嗎?