土豆網前端概況(5)_網頁設計教程
推薦:新聞門戶之導航易用性排名NO.1網易http://www.163.com/網易是目前所見到的最便于查看的導航。導航內容按分類排列,又以該類別最受關注的頻道作為分類標題,這樣就避免了個別頻道沒有
3.樣式層(Style)
1、全局、模塊和頁面級
a)土豆網的所有頁面都應用了全局樣式global.css(簡寫為_g.css),位于“/skin/g/_g.css”;該樣式文件包含了包括主要布局、導航條、盒狀模型、包裝模型以及常用工具類;
b)所有位于一級導航以及類似風格的頁面使用的是公眾樣式,位于“/skin/public/v.css”;所有內頁治理使用的是內頁樣式,,位于“/skin/my/v.css”;
c)所有獨立頁面使用自己獨有的樣式文件,命名以頁面功能或所在模塊為基準;
d)頁面樣式的基本原則是:假如某一特定頁面樣式的代碼超過整個文件的1/3,會被獨立成為單個的樣式文件。否則,通常會合并在其頁面所在的模塊中;
c)非凡少量的樣式,可以寫在頁面HEAH區域,或者寫在HTML,并沒有非凡苛刻的要求,這是出于對當前項目效率的考量。
舉一些例子:
-首頁
/skin/g/_g.css(全局風格)
/skin/public/index.css(公眾區域的首頁風格)
-視頻首頁
/skin/g/_g.css(全局風格)
/skin/public/v.css(公眾區域的模塊風格)
-我的視頻
/skin/g/_g.css(全局風格)
/skin/my/v.css(內頁治理界面模塊風格)
/skin/my/clips.css(我的視頻頁面級風格)
/skin/playlist/append.css(分享視頻的Toolkit封裝)
-視頻播放頁面
/skin/video/v.css(重點獨立頁面,非凡優化,合并了_g.css等樣式)
2、抽象與實例、繼續和重載
a)全站級別的繼續和重載機制;
因為涉及全局的樣式都被封裝在Global.css里,假如在模塊級或者頁面級需要對該樣式加以調整,辦法是重寫相關的類;
以下示例清楚地展示了一個視頻包(Pack)在類的繼續和重載的情況:
* 是一個全局樣式,規定了所有邊距的重置;
.pack 是一個抽象的包封裝,該類記錄了所有包的共性,其代碼如下。空的類可能會在一些生僻的瀏覽器上造成意外的問題,但是通常不會,這里書寫空類是為了保證在邏輯上的可閱讀性。
.pack { float:left; }
.pack ul {}
.pack li {list-style:none;}
.pack b { font-weight:normal;color:#686868;font-size:11px;font-family:Arial; }
在.pack下,書寫了所有包裝模型的實力類:.pack_clip, .pack_user, .pack_album, .pack_list,等等;
以下是視頻包和豆單包的例子:
.pack_clip {
padding:12px 10px;
color:#000;width:126px;
}
.pack_list {
padding:12px 3px;
color:#000;width:144px;
}
以上類的抽象和繼續主要體現在對各自私有部分的派生。以實現代碼的精簡和復用性。
在一個HTML片段中,調用的方法是:首先應用抽象類或者父類,然后應用實力類或者子類,例如:
<div class="pack pack_user director"></div>
在這個例子中,director代表豆角,這個類可能書寫在某個模塊中,也可能在頁面級的樣式中,對前面的類進一步重寫和修正;
修正的時候只需要書寫需要被修改或者重置的語句就可以了。
在上面的示例中,因為頁面的需要,模塊級別的/skin/public/v.css重寫了pack_clip的寬度:
#programpage .pack_clip{width:167px;}
當父類和抽象類被修改的時候,全站的所有Pack模型都會被修正,但是不影響到子類所做出的私有派生或者復寫,也就不會影響某一個非凡頁面的獨立樣式;
關于類、抽象和繼續的方法很多,考慮到命名方法和選擇符,會有大量不同的處理風格。然而最主要的思想都在各種面向對象的編程書籍中有具體的技巧和說明,這里就不復述了。
在土豆網的樣式中,大量應用了類似的辦法和技巧來處理可維護、可擴展和可復用性。
TIPS:
- 前端開發眼下最好的開發工具是Firebug,很好,很強大;
- 樣式命名很重要,優先考慮以類(class)為基礎,輕易不使用標識(ID),標識(ID)通常用于頁面級樣式所需要的元素,乃至一個細節上最終端的元素;
- 元素選擇符也很重要,“.pack_clip ul li a img {}”有著很高的優先權,要慎用;
- 以上兩點歸納起來說就是:盡量降低各種命名和選擇符的優先權,越是全局和抽象優先權應該最低,在一個特定的微觀元素部分,可以放心使用高優先權來復寫;當出現三層甚至五層的集成和復寫的時候,這就會顯得相當重要,假如不能很好地重寫,輕易不要使用important,而是想辦法重構父類(的命名和選擇符);
- 為了處理可擴展性,會稍微增加HTML結構的冗余性,然而從整體上來看,是值得的;
- 最終治理、處置和使用這些架構的是人。
4. 行為層(Behavior)
待續
分享:給“用戶體驗”降溫近兩年,“用戶體驗”這個詞成了時髦,很多設計師和公司產品宣傳,都打出“用戶體驗”的牌,甚至天天把用戶體驗掛嘴邊。動不懂就大講用戶體驗設計,炒概念,它
- 相關鏈接:
- 教程說明:
網頁設計教程-土豆網前端概況(5)。