一、什么是Compass?
Compass是Sass的工具庫,Compass在SASS的基礎上,封裝了一系列有用的模塊去補充Sass的功能,類似Javascript和jQuery
二、安裝
之前已經寫過文章講了sass、compass的安裝,地址:http://www.cnblogs.com/laayoune/p/4105105.html
三、創建項目
在Ruby的命令行中輸入
compass create myproject
會在當前目錄下創建一個myproject的目錄,myproject也可以是一個路徑參數
上面是創建的目錄結構,下面是告訴你在html中的引用
config.rb是配置文件
上面的是css、sass、image、js的存放目錄
最后是使用sass語法縮進
可以通過修改該文件進行項目配置,也可以在使用用compass create命令時進行配置:
--bare (不包含默認樣式表進行安裝);
--syntax sass (在默認樣式表中使用縮進語法);
--sass-dir "cool" (使用'cool'目錄存放Sass文件);
--css-dir "style" (使用'style'目錄存放CSS文件);
--images-dir "img" (使用'img'目錄存放圖片);
--fonts-dir "type" (使用'type'目錄存放字體文件);
--javascripts-dir "js" (使用'js'目錄存放JavaScript文件)。
如:compass create myproject --sass-dir "cool" --css-dir "style"
四、項目編譯
編譯命令:compass compile
該命令在項目根目錄下運行,會將sass子目錄中的scss文件,編譯成css文件,保存在config.rb配置的css-dir對應的目錄中。
默認狀態下,編譯出來的css文件帶有大量的注釋。但是,生產環境需要壓縮后的css文件,這時要使用--output-style參數。
compass compile --output-style compressed
Compass只編譯發生變動的文件,如果你要重新編譯未變動的文件,需要使用–force參數
compass compile –force
每次都要進行編譯太麻煩,可以自動檢測,只要sass文件夾發生變化(修改、增加文件),scss文件就會被自動編譯成css文件。
compass watch
一些其他的命令
compass init——為一個已經存在的項目(Rails)添加compass;
compass clean——移除生成的文件和緩存;
compass stats——查看樣式表的統計數據;
compass unpack <extension>——解壓擴展到你的項目;
compass validate——驗證你生成的CSS文件;
compass version——顯示版本、許可證,等等;
compass interactive——進入一個用於測試Compass中SassScript的控制台。compass help <具體命令>——獲得幫助/具體命令的詳細描述
五、Compass模塊
Compass采用模塊結構,不同模塊提供不同的功能
1、reset
@import "compass/reset"; //reset模塊,重置瀏覽器的默認樣式
有時不需要進行全局的樣式重置,可以單獨重置某一塊
reset-html5 HTML5樣式重置
reset-box-model 移除元素的內外邊距和邊框
reset-font 重置文字的字號和基線
reset-focus 移除瀏覽器提供的輪廓線(比如Safari給<input>元素加上的那一圈線)
reset-table 和 reset-table-cell 重置表格的邊框和對齊方式
reset-quotation 為<blockquotes>添加僅存在於樣式表中的雙引號
用法:
@import "compass/reset/utilities";
@include reset-html5;
2、layout
@import "compass/layout";
如:
@include sticky-footer(54px); //頁腳54px高,始終位於頁面底部
3、CSS3
提供CSS3命令,常用的如圓角等
@import "compass/css3";
使用時:
@include border-radius(5px);
4、typography
該模塊提供版式功能
@import "compass/typography";
如:鏈接顏色
link-colors($normal, $hover, $active, $visited, $focus)
5、utilities
提供某些不屬於其他模塊的功能,如reset中引入的混合器就包含在utilities中
@import "compass/utilities/";
如:清除浮動
@include clearfix;
六、Helper函數
Compass還提供一系列函數,如:
image-width($image)、cos($number)
有關compass的所有相關模塊和函數,可以查看http://compass.aether.ru/,里面有詳細的用法講解和例子


