建站常識(shí)
土豆網(wǎng)前端概況
2008-01-24 10:43:00
一、分工和流程
在土豆網(wǎng),以項(xiàng)目開發(fā)為核心,誰都可以帶項(xiàng)目,擔(dān)任項(xiàng)目經(jīng)理。
一個(gè)典型的土豆網(wǎng)項(xiàng)目中,當(dāng)進(jìn)入正式開發(fā)階段,通常參與者包括:1名設(shè)計(jì)師,1-2名前端工程師,1到多名后臺(tái)工程師,1-2名系統(tǒng)運(yùn)維管理員。
其中,前三者的工作都是可以并發(fā)的,最終整合通常是前段工程師,對(duì)于復(fù)雜度較低的頁(yè)面處理,一般工程師也可以直接參與。
不管是設(shè)計(jì)師、前端和后臺(tái)工程師,對(duì)于分離的領(lǐng)會(huì)和理解都非常重要,并且導(dǎo)致配合上,不同理解層次的人會(huì)產(chǎn)生不同的配合效果。
其中,設(shè)計(jì)師和前端工程師的配合無疑是最重要的,設(shè)計(jì)師的風(fēng)格直接導(dǎo)致前端頁(yè)面結(jié)構(gòu)的簡(jiǎn)潔或者復(fù)雜,程序邏輯的簡(jiǎn)潔或者復(fù)雜。
一個(gè)卓越于設(shè)計(jì)并且理解W3C網(wǎng)頁(yè)標(biāo)準(zhǔn)的設(shè)計(jì)師是珍稀而罕見的。
二、基本架構(gòu)(Architecture)
架構(gòu)的目標(biāo):可擴(kuò)展性、可維護(hù)性、可復(fù)用性
1. 內(nèi)容(Infomation/Content)
土豆網(wǎng)的內(nèi)容結(jié)構(gòu),從模塊來說,如中心橙色圈所區(qū)分出的九個(gè)大塊:
從其功用來說,則分為三個(gè)層次:
這些特性決定了后面所有前端架構(gòu)的基調(diào)。
#p#2. 結(jié)構(gòu)層(Structure)
A、 頁(yè)面(Page)結(jié)構(gòu)
a) 概覽
一個(gè)典型左右版式的頁(yè)面樣式:
土豆網(wǎng)的所有頁(yè)面都基于這個(gè)頁(yè)面模型,分別是:上下導(dǎo)航、內(nèi)容,內(nèi)容分為貫穿版式或者左右版式。
在左右區(qū)域中分別由盒狀模型擔(dān)任最終內(nèi)容的承載結(jié)構(gòu)。
解析如下:
HTML片段:
#p#b) 導(dǎo)航
i、 頂部導(dǎo)航
土豆網(wǎng)導(dǎo)航分為三種,常規(guī)導(dǎo)航、黑色小黑邊導(dǎo)航,以及視頻播放頁(yè)面的專用導(dǎo)航。
這三種導(dǎo)航使用的HTML是基本一致的,通過CSS來控制不同狀態(tài)下的表現(xiàn):
模型解析:
HTML片段:
ii、 底部導(dǎo)航(從略)
c)內(nèi)容
i、 貫穿版式:在個(gè)別頁(yè)面,會(huì)出現(xiàn)沒有左右布局的全頁(yè)面橫向貫穿版式,這時(shí)頁(yè)面結(jié)構(gòu)內(nèi)只有Content,沒有Main或者Side,此時(shí)盒狀模型全部直接堆積在Content內(nèi)。另外,除了全站首頁(yè)以外的所有公共頁(yè)面都是特制并保持風(fēng)格統(tǒng)一的貫穿版式。
ii、 左右側(cè)欄:最常見的布局,存在于絕大部分頁(yè)面。最主要應(yīng)用在內(nèi)頁(yè)管理區(qū)域,首頁(yè)也有用到。
iii、 混合版式:只有視頻播放頁(yè)面用到。
#p#B、 盒狀(box)模型結(jié)構(gòu)
盒裝模型是建立在頁(yè)面布局的基礎(chǔ)上,承載內(nèi)容和數(shù)據(jù)的最直接頁(yè)面基礎(chǔ)結(jié)構(gòu),主要分為容器、標(biāo)題、內(nèi)容、底部三個(gè)部分。
一個(gè)典型的盒裝模型效果分為側(cè)欄效果和主欄效果兩種風(fēng)格,統(tǒng)一的HTML結(jié)構(gòu),通過CSS來控制樣式上顯示的不同,這一部分在樣式層主要討論。
在首頁(yè)以及少量特殊頁(yè)面上,會(huì)有額外的風(fēng)格,但是依然以盒狀模型為基礎(chǔ)。
解析如下:
HTML片段如下:
C、包裝(pack)模型
對(duì)于站內(nèi)存在的視頻、豆單、播客、小組、話題討論等等,都有既定的統(tǒng)一表現(xiàn)風(fēng)格,因此在盒裝模型以外,單獨(dú)設(shè)立了面向這些常用內(nèi)容的模型結(jié)構(gòu),因?yàn)槭谴虬幚恚苑Q之為包裝模型。
包裝模型基本風(fēng)格一致,但是在各處的顯示略有不同,同時(shí)還會(huì)涉及在個(gè)人主頁(yè)上自定義樣式等,是需要符合全站出處可用的封裝模型。
常見的有:
包裝模型最重要的變化來自于樣式層的處理,其結(jié)構(gòu)本身很簡(jiǎn)單,就不做解析了,以下是一個(gè)視頻包的HTML片段范例:
#p#3.樣式層(Style)
1、全局、模塊和頁(yè)面級(jí)
a)土豆網(wǎng)的所有頁(yè)面都應(yīng)用了全局樣式global.css(簡(jiǎn)寫為_g.css),位于“/skin/g/_g.css”;該樣式文件包含了包括主要布局、導(dǎo)航條、盒狀模型、包裝模型以及常用工具類;
b)所有位于一級(jí)導(dǎo)航以及類似風(fēng)格的頁(yè)面使用的是公眾樣式,位于“/skin/public/v.css”;所有內(nèi)頁(yè)管理使用的是內(nèi)頁(yè)樣式,,位于“/skin/my/v.css”;
c)所有獨(dú)立頁(yè)面使用自己獨(dú)有的樣式文件,命名以頁(yè)面功能或所在模塊為基準(zhǔn);
d)頁(yè)面樣式的基本原則是:如果某一特定頁(yè)面樣式的代碼超過整個(gè)文件的1/3,會(huì)被獨(dú)立成為單個(gè)的樣式文件。否則,通常會(huì)合并在其頁(yè)面所在的模塊中;
c)特別少量的樣式,可以寫在頁(yè)面HEAH區(qū)域,或者寫在HTML,并沒有特別苛刻的要求,這是出于對(duì)當(dāng)前項(xiàng)目效率的考量。
舉一些例子:
-首頁(yè)
/skin/g/_g.css(全局風(fēng)格)
/skin/public/index.css(公眾區(qū)域的首頁(yè)風(fēng)格)
-視頻首頁(yè)
/skin/g/_g.css(全局風(fēng)格)
/skin/public/v.css(公眾區(qū)域的模塊風(fēng)格)
-我的視頻
/skin/g/_g.css(全局風(fēng)格)
/skin/my/v.css(內(nèi)頁(yè)管理界面模塊風(fēng)格)
/skin/my/clips.css(我的視頻頁(yè)面級(jí)風(fēng)格)
/skin/playlist/append.css(分享視頻的Toolkit封裝)
-視頻播放頁(yè)面
/skin/video/v.css(重點(diǎn)獨(dú)立頁(yè)面,特殊優(yōu)化,合并了_g.css等樣式)
2、抽象與實(shí)例、繼承和重載
a)全站級(jí)別的繼承和重載機(jī)制;
因?yàn)樯婕叭值臉邮蕉急环庋b在Global.css里,如果在模塊級(jí)或者頁(yè)面級(jí)需要對(duì)該樣式加以調(diào)整,辦法是重寫相關(guān)的類;
以下示例清晰地展示了一個(gè)視頻包(Pack)在類的繼承和重載的情況:
* 是一個(gè)全局樣式,規(guī)定了所有邊距的重置;
.pack 是一個(gè)抽象的包封裝,該類記錄了所有包的共性,其代碼如下。空的類可能會(huì)在一些生僻的瀏覽器上造成意外的問題,但是通常不會(huì),這里書寫空類是為了保證在邏輯上的可閱讀性。
.pack { float:left; }
.pack ul {}
.pack li {list-style:none;}
.pack b { font-weight:normal;color:#686868;font-size:11px;font-family:Arial; }
在.pack下,書寫了所有包裝模型的實(shí)力類:.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;
}
以上類的抽象和繼承主要體現(xiàn)在對(duì)各自私有部分的派生。以實(shí)現(xiàn)代碼的精簡(jiǎn)和復(fù)用性。
在一個(gè)HTML片段中,調(diào)用的方法是:首先應(yīng)用抽象類或者父類,然后應(yīng)用實(shí)力類或者子類,例如:
<div class="pack pack_user director"></div>
在這個(gè)例子中,director代表豆角,這個(gè)類可能書寫在某個(gè)模塊中,也可能在頁(yè)面級(jí)的樣式中,對(duì)前面的類進(jìn)一步重寫和修正;
修正的時(shí)候只需要書寫需要被修改或者重置的語(yǔ)句就可以了。
在上面的示例中,因?yàn)轫?yè)面的需要,模塊級(jí)別的/skin/public/v.css重寫了pack_clip的寬度:
#programpage .pack_clip{width:167px;}
當(dāng)父類和抽象類被修改的時(shí)候,全站的所有Pack模型都會(huì)被修正,但是不影響到子類所做出的私有派生或者復(fù)寫,也就不會(huì)影響某一個(gè)特殊頁(yè)面的獨(dú)立樣式;
關(guān)于類、抽象和繼承的方法很多,考慮到命名方法和選擇符,會(huì)有大量不同的處理風(fēng)格。然而最主要的思想都在各種面向?qū)ο蟮木幊虝杏性敿?xì)的技巧和說明,這里就不復(fù)述了。
在土豆網(wǎng)的樣式中,大量應(yīng)用了類似的辦法和技巧來處理可維護(hù)、可擴(kuò)展和可復(fù)用性。
TIPS:
- 前端開發(fā)眼下最好的開發(fā)工具是Firebug,很好,很強(qiáng)大;
- 樣式命名很重要,優(yōu)先考慮以類(class)為基礎(chǔ),輕易不使用標(biāo)識(shí)(ID),標(biāo)識(shí)(ID)通常用于頁(yè)面級(jí)樣式所需要的元素,乃至一個(gè)細(xì)節(jié)上最終端的元素;
- 元素選擇符也很重要,“.pack_clip ul li a img {}”有著很高的優(yōu)先權(quán),要慎用;
- 以上兩點(diǎn)歸納起來說就是:盡量降低各種命名和選擇符的優(yōu)先權(quán),越是全局和抽象優(yōu)先權(quán)應(yīng)該最低,在一個(gè)特定的微觀元素部分,可以放心使用高優(yōu)先權(quán)來復(fù)寫;當(dāng)出現(xiàn)三層甚至五層的集成和復(fù)寫的時(shí)候,這就會(huì)顯得相當(dāng)重要,如果不能很好地重寫,輕易不要使用important,而是想辦法重構(gòu)父類(的命名和選擇符);
- 為了處理可擴(kuò)展性,會(huì)稍微增加HTML結(jié)構(gòu)的冗余性,然而從整體上來看,是值得的;
- 最終管理、處置和使用這些架構(gòu)的是人。
4. 行為層(Behavior)
待續(xù)
近期更新
- [2023-06-25 23:22:29] 優(yōu)秀網(wǎng)站設(shè)計(jì)的五大特點(diǎn)
- [2023-04-27 14:05:55] Html 5 響應(yīng)式網(wǎng)站設(shè)計(jì)制作
- [2023-04-10 11:07:30] 網(wǎng)站建設(shè)制作流程知多少
- [2022-10-14 10:11:30] 做網(wǎng)站設(shè)計(jì)應(yīng)該更看重框架搭建還是視覺觀感?
- [2022-08-09 15:57:48] 以“產(chǎn)品”思維搭建網(wǎng)站!
- [2022-08-08 09:12:57] 一家公司的網(wǎng)站應(yīng)該有哪些板塊內(nèi)容?
- [2022-08-05 09:28:06] 企業(yè)網(wǎng)站建設(shè)為什么要設(shè)置新聞板塊?
- [2022-07-04 15:58:06] 網(wǎng)站首頁(yè)設(shè)計(jì)的好看,這個(gè)網(wǎng)站就成功了一大半!
- [2022-05-20 09:34:19] 網(wǎng)站后臺(tái)管理系統(tǒng)是什么?有什么作用?
- [2022-05-17 11:29:32] 作為消費(fèi)者,應(yīng)該如何選擇一家水平高的網(wǎng)站建設(shè)公司
- [2022-05-17 11:27:01] 高端網(wǎng)站定制與模板化網(wǎng)站應(yīng)該怎么選擇?
- [2022-04-22 16:00:41] 現(xiàn)在高端的網(wǎng)站設(shè)計(jì)都有哪些新的趨勢(shì)?
延伸閱讀
解決方案
輪胎行業(yè)網(wǎng)站設(shè)計(jì)解決方案 機(jī)械行業(yè)網(wǎng)站設(shè)計(jì)解決方案 房地產(chǎn)行業(yè)網(wǎng)站設(shè)計(jì)解決方案 科技企業(yè)網(wǎng)站設(shè)計(jì)解決方案 電子家電網(wǎng)站設(shè)計(jì)解決方案 食品行業(yè)網(wǎng)站設(shè)計(jì)解決方案 集團(tuán)公司網(wǎng)站設(shè)計(jì)解決方案 企事業(yè)單位網(wǎng)站設(shè)計(jì)解決方案 外貿(mào)行業(yè)網(wǎng)站設(shè)計(jì)解決方案 健身運(yùn)動(dòng)網(wǎng)站設(shè)計(jì)解決方案 美容與化妝品網(wǎng)站設(shè)計(jì)解決方案 建筑設(shè)計(jì)行業(yè)網(wǎng)站設(shè)計(jì)解決方案 物流行業(yè)網(wǎng)站設(shè)計(jì)解決方案
TAGS關(guān)鍵字
青島高端網(wǎng)站設(shè)計(jì)公司哪家好 網(wǎng)站優(yōu)化 青島好的網(wǎng)站優(yōu)化公司 青島網(wǎng)站建設(shè)公司哪家好 網(wǎng)站交互設(shè)計(jì) 手機(jī)網(wǎng)站 良好的導(dǎo)航 外貿(mào)網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì) 頁(yè)面設(shè)計(jì) 手機(jī)網(wǎng)站建設(shè) robots 微官網(wǎng)帶來的好處 建站常識(shí) 網(wǎng)站品牌 集團(tuán)官網(wǎng) 微信開發(fā) 營(yíng)銷型網(wǎng)站 網(wǎng)站改版 響應(yīng)式設(shè)計(jì) 青島SEO SEO 網(wǎng)站開發(fā) 網(wǎng)站策劃 H5專題頁(yè)面 微信營(yíng)銷的優(yōu)勢(shì) 青島輪胎網(wǎng)站設(shè)計(jì)公司 視覺靈感 審美 網(wǎng)站視覺