compass
Compass是Sass的工具庫,就好像jQuery是js的庫一樣。
sass有了compass的配合,就會更加事半功倍。
Sass本身隻是一個編譯器,Compass在它的基礎上,封裝了一系列有用的子產品和模闆,補充Sass的功能。它們之間的關系,有點像Javascript和jQuery、Ruby和Rails、python和Django的關系。(by:阮一峰http://www.ruanyifeng.com/blog/2012/11/compass.html)
官網:http://compass-style.org/
compass安裝
首先要裝上ruby,官網說,更進階點的可能需要安裝rvm
不過經曆過前邊sass,ruby啥的應該都配置好了才開始玩compass的
接下來:更新ruby環境并安裝compass
-
更新$ gem update --system
更新完畢:

2.安裝$ gem install compass
2.安裝$ gem install compass
安裝完畢:
compass的建立
進入項目目錄 $ cd 目錄路徑
項目初始化:$ compass create <項目檔案夾名稱>
例如:$ compass create sassTest
項目初始化是用來建立自己的compass項目的,建立完成,目前目錄下就會生成一個你剛才命名的子目錄。
建立完成,他會在目錄下建立下面這些檔案:
sass檔案夾放置sass源檔案
stylesheets檔案夾放置編譯後的css檔案
config.rb是項目的配置檔案。
其中
他主動建立的screen.sass就是放置自己主要樣式的檔案,并且會自動引用進來compass的reset子產品(後講)。
ie和print分别是針對ie和列印設定的專門樣式,看自己項目需要吧。
進入項目目錄:$ cd <項目檔案夾名稱>
開始編寫項目。。
compass編譯
傳回項目根目錄下運作!!輸入指令: $ compass compile
之後,計算機自動的将sass檔案編譯成css檔案并儲存在tylesheets子目錄中。
另外,若要設定編譯出來的風格,編譯的指令可以做如下更改:
$ compass compile --output-style compressed
這樣會把css中的注釋啥的都删掉,壓縮css檔案。
但是例外,如果檔案中的版權聲明不想被壓縮時去掉咋辦?——解決:在注釋的前邊加一個感歎(!)
例如
/*!
* 我是版權資訊,不能被壓縮删掉
*/
這樣,壓縮風格的編譯出來就不會把這段注釋資訊删掉了
其他風格有:
expanded:
nested:
compact:
compressed:
或者修改config.rb檔案中的output_style = :expanded 也可以更改編譯模式
同時編譯未發生改動的檔案:compass compile --force
監聽編譯:$ compass watch
這樣,檔案有變動,儲存後就會自動編譯
compass分為六大核心子產品
1.
reset:浏覽器預設樣式重置子產品,減少浏覽器樣式的差異性
引入方法:@import “compass/reset”
進網頁看reset核心mixin詳細說明:http://compass-style.org/reference/compass/reset/utilities/
2.
Layout:提供頁面布局的控制能力
引入方法:@import “compass/layout”
使用率很低
3.
CSS3:用來提供跨浏覽器的css3能力
引入方法:@import “compass/css3”;
功能:
——添加浏覽器字首:@include css3屬性名(對應屬性值)
例如box-shadow屬性:
@include box-shadow(1px 1px 3px 4px #333);
這樣編譯出來自動生成字首代碼了。(若不想配置的浏覽器,則在browser support中設定即可)
其他功能(點css3連結):
4.
Helpers:内含一系列的函數,和sass函數清單很像,雖然比較少用到,但是功能強大。
5.
Typography:
主要用來修飾我們的文本樣式、垂直韻律
引入方法:
@import “compass/typography/links”; 單獨引入某一個子產品
@import “compass/typography”; 整體引入一個子產品
6.
Utilities其他子產品所不具備的補充。見聞知意:輔助類工具的子產品。
!!差別于helpers的内部都是函數,Utilities内部都是mixin
7.
Browser Support:用來配置compass預設支援哪些浏覽器、對于特定浏覽器支援到哪個版本
這個子產品的修改影響着其他六個子產品的配置輸出
引入寫法:@import “compass/support”;(css3子產品已經間接引入了support子產品,這個可以不寫)
注意:
隻要@import “compass” 就預設引入五大子產品,但是隻有reset和layout子產品需要特殊指定引入的
插件的使用——以normalize為例
reset和normalize.css
用normalize來替換reset
指令行: gem install compass-normalize
或者,自己去網上下載下傳normalize.css檔案 necolas.github.io/normalize.css
安裝好後在config.rb檔案引入插件
引入——在config.rb檔案中頂部另起一行填入:require ‘compass-normalize’
擴充:import-once作用:
若一個頁面多次import一個相同檔案,就隻會插入一次。解決了sass多次引用就多次編譯同一個檔案的bug。
但是真的想多次引入時,可以在被引入的檔案名字後邊加入感歎号(!)告知compass這是多次引入
使用插件方法:直接import就可以:@import ‘normalize’
上邊這種方法是直接把normalize整體的引入進來
若想要隻引入部分子產品,隻要插件名/子產品名就好了,
但是前邊要多加一行@import ‘normalize-version’
例如:
1 @import ‘normalize-version’
2 @import ‘normalize/html5’
2017-07-19 17:14:03