框架?工具?哲學?
Object-orIEnted CSS is a coding paradigm that styles "objects" or "modules"—nestable
chunks of Html that define a section of a webpage—with robust, reusable styles.
令 CSS 更強大
ul{...}
ul li{...}
ul li a(②但是,結構在這裡){①直至現在,我們只關心這裡}
意大利面條
稍微好一點
我們築了大柵欄
公認的毒藥中心
文件大小和 HTTP 請求未作優化
性能的最佳實踐、可擴展性、和最重要的-容易使用
可重用的“樂高積木”
性能“免費”
組合並匹配來創建不同的和有趣的頁面
新的頁面一般不需要額外的 CSS
根據你需要的語義來完成你想要的表現
必須對頁面中的所有模塊可用
在不能增加價值的元件上浪費性能資源
h3 和 h5 太相似了
如果一個頁面中的兩個模塊看起來太相似,它們在一個站點中太相似,選擇一個!
Yahoo! 個人財經
2+不同的 tab 風格。能用相同的圖像嗎?
3個元件的輪廓太相似了。選擇一個。
模塊寬度、背景色或背景圖片的改變是個很好的模塊復用的例子。
沙盒比意大利面條好,不過引起了性能問題
不好的:
#weatherModule h3{color:red;}
#tabs h3{color:blue;}
推薦:
h3{color:black;}
#weatherModule h3{color:red;}
#tabs h3{color:blue;}
寫更多規則去重寫之前的瘋狂規則。
比如標題在任意模塊的表現是可預見的。
h1, .h1{...}
h2, .h2{...}
h3, .h3{...}
h4, .h4{...}
h5, .h5{...}
h6, .h6{...}
真的嗎?沒有重復?沒有相似的?
.category{...}
.section{...}
.product{...}
.prediction{...}
復用代碼段
是抽象不同水准的語義失敗所導致的
定義每個對象的界限
圖像或 Flash
容器和內容對象達到高性能設計
內部透明!
需要小心選擇像素
考慮 PNG8 來漸進增強
可變的或漸變背景
提防圓角後的可變或漸變背景
兩個單獨的 class
示例:模塊
Sloves borwser bugs, positions presentational elems, and generally does the heavy
lifting of CSS
弄漂亮些。
目標是非常明確的皮膚,復雜的被結構對象和跨網站共享所吸收(The goal is very predictable skins, complexity is
absorbed by the structure object and shared across the site)。
/* ----- simple (extends mod) ----- */
.simple .inner{
border:1px solid gray;
-moz-border-radius:7px;
-webkit-border-radius:7px;
border-radius:7px;
}
.simple b{
*background-image:url(skin/mod/corners.png);
}
皮膚的每個值應該是確定的,容易預測並測量。
可延長的高度和寬度
Limit the ways in which a module can be resued
堅信其會很美
給設計師和工程師
從簡單到復雜的任務
Gonzalo Cordero Yahoo! 前端開發工程師
這不僅僅是 OOCSS!
本文內容來源於: