老實說,我一直很排斥blueprint, , compass這種非CSS正統格式的快速工具。擁護者常會說他們很快速、方便,而且可以幫你把hack全部處理完,還可以有效簡化流程balabala一堆,但對我來說,我還是喜歡自己慢慢刻的那種成就感,而且Compass所產生出來的css讓我覺得非常的髒,註解一堆,也不是按照我所愛的編排習慣。

但,我還是開始碰觸Compass了...。大概有10%原因是受到這張比較圖的影響▼

甚麼!!Compass居然自居是武裝過後的CSS!!!
基於好奇探究,也基於工作上的需要(其實主因80%是工作關係OTL),所以我決定來玩玩Compass。

在使用Compass之前,我一直很怕用習慣後,會忘掉正統的CSS寫法。幸好目前寫了三、四行,還沒忘記原本的....。那麼剩下10%使用Compass的原因,是想挑戰自己。

人活到一個階段,會開始抗拒學習新事物,變得比較沒有挑戰性、墨守成規。老實說,我不想變成這樣的人,我也害怕自己變成這樣子。雖然我一開始不能接受Compass,但是,為什麼我要抗拒它呢?雖然我擁護著正統的CSS,但我還是可以學習改良過後的Compass,正所謂知己知彼,百戰不殆嘛!

然後...,從安裝開始就是一條艱辛的路途,因為國內使用Compass的人不多,加上沒有人從頭到尾去寫教學,所以我決定自己寫一篇,給那些想玩Compass卻不知從何玩起的朋友一個參考。

甚麼是Compass

簡而言之,就是另外一種撰寫CSS的方式(工具),簡單舉例幾個我覺得還不錯的特色(我非程式評測背景出身,所以不談數據理論,只說我自己的感想)

【1.解決瀏覽器不相容:】
這我還沒實際用過,但聽說Compass可以幫你解決瀏覽器不相容的問題。也就是說,你不用再開每個瀏覽器在那邊看哪裡跑掉,然後針對跑掉的部分寫hack,慢慢地去刻。只要在Compass寫上幾行語法,他就可以自動幫你產生相關hack。(但不是所有的hack)

【2.簡化css代碼:】
Compass透過一種「全域變數」的邏輯,可以有效簡化CSS代碼。比如今天在很多class都用到"紅色",Compass可以讓你只要修改一次,就可以把所有紅色都取代掉。
可以在style文件最前面寫上:

$red: #ff0000

class裡頭:

a {
color: $red;
}

.h1 {
color: $red;
}

往後只要改 $red: #ff0000,就可以全部替換掉了。

【3.會幫你除錯】
因為要把compass檔案轉成css時,會先經過compile(編譯),compile的過程中,有問題就不會讓你過,會告訴你哪裡有錯。(是不是很有按下.net三角形icon的FU...,發明Compass的人一定是程式面出身的!!!)

【4.自動幫你補完CSS3語法】
假設今天要寫一個圓角效果,因為要考慮每個瀏覽器的相容模式,所以我們至少會寫三行:

img {
border-radius: 5px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
}

但是你在compass只要寫

img
+border-radius(5px)

就好了!!
當然,前提是要import一些設定檔進來,有興趣的朋友可以直接參考Compass官網給的範例

關於Compass的優勢,大致上我比較注意的就是這些,聽同事說還有CSS Sprite的設定簡化,但我還沒研究,所以就不贅述了。

如果看到這,還有興趣的話,就一起來安裝Compass吧!!

Compass安裝使用目錄

1. 前言
2. 安裝Compass與建立專案
3. 嘗試開始寫Compass
4. 後記

■ 文章資訊
人氣: 4,384
分類: css語法.筆記
文章標籤: , ,
引用網址:

■ FACEBOOKs COMMENT:



■ EVERYBODYs COMMENT:
  • 1♥ kuro (LV.2)

    其實 compass 真正威猛的地方是在 @mixin 的部份,還有你可以去抓前人寫好的 code 來用,比較有名的大概就是 fancy buttons,有興趣的話可以去 google 一下

    2011.10.05 20:21
  • 2♥ 佑樣 (LV.8)

    compass只能在server端使用
    想在client端用類似的功能可以使用less

    2011.10.06 14:50
  • 3♥ Yuan (LV.13)

    我有看錯嗎
    Body是900xp???
    不是900px喔?

    2011.10.06 15:54
    • └ Re: muki (LV.1155)

      真是老了,打字愈來愈不順手了
      抱歉,已修正OTL

      2011.10.06 17:45
  • 4♥ 情封 (LV.1)

    这个教学篇不错,晚上我也是试试了compass+sass,觉得还是不能实时编译,要写完一个SCSS,然后compile一次看效果,显得麻烦

    2011.10.08 21:10
  • 5♥ underfire (LV.2)

    compass.app :P

    2011.10.10 22:08
  • 6♥ eRic (LV.4)

    請問Ruby可以裝在windows嗎?

    2011.10.11 12:43
    • └ Re: muki (LV.1155)

      可以唷!
      我的測試環境就是windows

      2011.10.11 13:10
  • 7♥ eRic (LV.4)

    原來如此~我一直以為Ruby只能在mac上用
    謝謝

    2011.10.11 13:36
  • 8♥ 減肥 (LV.2)

    最后的帽子有性格

    2011.10.16 22:12
  • 9♥ 香腸 (LV.51)

    看完之後,我覺得好麻煩喔...QQ
    我還是跟學姊你一樣,喜歡使用手key,慢慢校正,
    邊改編罵,比較有成就感...XD

    2011.10.27 14:28
  • 10♥ jerry985214 (LV.2)

    Compass都不知道怎么装上去啊

    2012.02.15 14:23
    • └ Re: muki (LV.1155)

      我已經寫得很詳細囉
      你是哪裡不懂?

      2012.02.15 15:46
  • 11♥ jerry985214 (LV.2)

    请求高手出场帮忙啊!

    2012.02.15 14:24

  • ■ LEAVE YOUR COMMENT:



      :wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!: