什麼是 CSS 架構?作為 CSS 架構師,每天的任務是什麼呢?
聽老大說過,關於CSS這個信息點,但一直不知道具體是什麼?
自己認為,就是將一些常用的樣式,固定的搭配等等給收集起來。在使用的時候,引入即可。但又覺得,作為架構師,應該有更高的要求吧。
不存在所謂「CSS架構師」。
CSS本是為設計師使用的DSL。語言就是語言,沒有什麼好「架構」的。所以不僅沒有「CSS架構師」,也不存在HTML架構師、C架構師、C++架構師、SQL架構師……
只有庫、框架、應用、系統、平台等才有架構。(比如,假如有所謂Java架構師,那通常指的是Java企業應用的架構師。)
CSS本身並不構成應用、系統或平台,那麼CSS有沒有庫、框架?
我認為是沒有的。由於最初的設計目標是保持簡單,CSS語言本身就沒有設計復用機制,因此不可能有庫和框架。現今所謂的CSS庫/框架是通過濫用class選擇器達成的,這本身是破壞HTML和CSS的基本機制(內容樣式分離)的,必然導致可維護性的喪失。在規模較小的web站點或應用中,問題還不大,然而之所以要有架構,通常是為大中型項目準備,因此就成了悖論。
當然,CSS的超集如SASS/Stylus/LESS是有復用機制的(未來CSS4?也許也會原生支持),所以是有SASS/Stylus/LESS的庫或框架。至於說是否要有專門的SASS/Stylus/LESS架構師?我個人傾向於否,雖然這些庫、框架確實有架構,但似乎並未複雜到需要專職架構師的地步。
注意,以上所謂架構,均指技術架構。CSS本身是設計語言,就設計本質而言,自無所謂技術架構或業務架構,但也有類似架構的東西——比如你如何分解出整個站點的基礎樣式、某個欄目的樣式、某個頁面的具體樣式,使用時如何有機結合……只是似乎未聽聞以「架構」一詞來稱呼,也無「架構師」之稱謂。做綜合性大型網站,為保證CSS的可讀性、可復用性、易用性、可擴展性、兼容性、渲染效率等,完全需要應用一些規劃好的CSS文件集合。如 @賀師俊 所言,CSS談不上架構,但CSS框架的概念我覺得還是值得去發展、推廣。
CSS框架是一些事先約定好的CSS代碼,給用戶一些介面(類名),用戶操作類名來改變頁面樣式和結構。CSS框架的優點:- 標準化,A級瀏覽器兼容性強,無需hack
- 快速開發,布局、定義樣式簡單
- 可復用性強,網站越大,需增加的代碼量比例越小
- 結構明晰,遵守語義化約定,可讀性好
- 可擴展性好,整站風格修改容易
- 規範命名和流程,便於團隊開發和維護
- 不適合小項目
- 不適合太複雜布局的網頁
- 有一定的代碼冗餘
- 不整合的話,http請求過多
- 學習成本高
- 重置:常用的CSS reset.css就是一種簡單的框架,把他引用到頁面中,就可以重置一些瀏覽器的渲染差異,大部分框架還會同時美化各種基本的元素樣式,放在base.css里。
- 布局:所有CSS框架都提供布局功能,一般叫grids.css,根據原理主要分為兩大類:基於自適應的和基於柵格的。
YUI Grids CSS
Elements CSS FrameworksBlueprint CSSWYMstyle CSS FrameworkCleverCSS不妨試試支付寶的 Alice ?http://aliceui.org
一般我分為三層 base.css common.css global.css base放reset和一些基礎類例如.mr10{margin-right:10px;} common里放整站的基礎類 例如 導航,文章列表,圖片列表,以及一些可重用的方法,global則放的是每個頁面步同的 , base 所有項目都可以拿來直接用 , 而common和global需要針對不同項目而重新編寫.還有一種分發就是針對那些需要切換不同模板的網站,同樣base是不變的,不同的是會多出文件夾,比如common文件夾下面會有common.css和image文件夾(存放common.css所用到的圖片),還會有default文件夾,下面會有global.css和image文件夾(存放global.css所用到的圖片),以此類推,每次加不同樣式的模板,只需要加一個文件夾就可以了(例如 green 文件夾,代表綠色模板) ,就這麼多了...語文不好...還望見諒
回答比起上面的大神水一些,但我的項目經驗是,一般大型網站為增加復用性、維護性,通常採用3層架構,即reset.css common.css 和page.css。 通用樣式放在common.css裡面,頁面樣式放在page.css裡面。
推薦閱讀:
※新手關於前端開發的幾個問題?
※怎樣用CSS製作這樣的效果?
※對inline-block元素作用負margin為什麼其移動範圍會受到限制?
※怎麼覺得JS和CSS重疊的東西太多了?
TAG:CSS |