OO的CSS嘗試

來源:互聯網
上載者:User

OO的CSS嘗試:物件導向的樣式表實踐

美工和程式員如何合作? 我的答案是就靠這種規則的CSS
因為結構比較規則,所以可以通過固定的Taglib來產生table
但美工和程式員之間需要一個熟悉CSS/Scritpt的web程式員

之前想到過用類似於物件導向的方法來做CSS,主要的設計思路如下

對於某種類型的Table,在系統中肯定會出現多次,
例如用於顯示新聞的,顯示公告的等等。
因此把這種Table總結為一個CSS,而這些不同的CSS又有一些共性。
代碼:
sampleTable.css
.sampleTable {
}

sampleTable2.css
.sampleTable2 {
}

例如表頭,資料行等等,很多元素都相同。
因此做一個CSS模版,通過CSS屬性繼承的技巧來實現。
代碼:

.sampleTable1 {
}
.sampleTable1 tbody .text{
}

.sampleTable2 {
}
.sampleTable2 tbody .text {
}

為什麼說是OO的CSS呢?

因為這個CSS借鑒了OO的部分思路,繼承,抽象和多態

繼承,就是CSS的class繼承了父class的屬性如.table tbody
抽象,就是按照實際功能抽象為一個可描述的名字,如.text

在應用的時候,上面的.table .label .menu等等,可以看作是介面
不同的css實現相同的介面。如.table1 .table2,都應該有.label .ment

一個<TABLE class="table1">,可以看作是.table1這個介面的一個對象,
是吧,這個對象也可能是table2的對象,
但他們都是實現了.table這個介面。

table對不同介面的實現,就是OO中的多態。

那麼,這樣做的好處是什嗎?
首先,你得到了一個乾淨的table,沒有多餘的顏色格式資訊
第二,這個表格是規則的,你可以通過taglib等模版自動產生
第三,更換一個class很簡單,只需要改動一處,不需要修改td等元素
第四,更好的組織css,將css按照顏色或功能分為多個檔案

代碼位於:http://icecloud.51.net

現在我只實現了一個table的0.12版本
有興趣的朋友不妨一起來做這個OO-CSS項目 :>

    

著作權聲明:

本文由冰雲完成,作者保留中文著作權。
未經許可,不得使用於任何商業用途。
歡迎轉載,但請保持文章及著作權聲明完整。
如需聯絡請發郵件:icecloud(AT)sina.com
Blog:http://icecloud.51.net
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.