WEB前端設(shè)計(jì):良好的頁面結(jié)構(gòu)和優(yōu)美網(wǎng)頁的幾點(diǎn)方法
發(fā)布時(shí)間:2012-06-08 11:17:12 作者:佚名
我要評(píng)論

如何做出一個(gè)漂亮的WEB頁面呢.從以下幾點(diǎn)下說明一下
但凡從事互聯(lián)網(wǎng)的人基本都會(huì)寫幾行html,用過Word的人用Dreamweaver也能做出規(guī)整的頁面,所以大部分人會(huì)很自然地認(rèn)為“頁面的開發(fā)沒什么技術(shù)含量,很簡(jiǎn)單”。不僅有這種普遍的認(rèn)知,對(duì)從業(yè)者來說也有很多疑惑:做頁面前端實(shí)現(xiàn),沒問題;兼容性,小case;圖片集成,一直都在用……還能有什么問題?瓶頸啊、天花板啊、轉(zhuǎn)型啊、出路啊就在從業(yè)者中廣泛討論。是不是真的沒什么問題了呢?網(wǎng)易郵箱前端技術(shù)中心也設(shè)立好幾年了,似乎有著討論不完的話題,也經(jīng)常會(huì)有一些新的想法讓大家為之一振。那么頁面開發(fā)還有哪些要求,還要做些什么,這里面的水有多深,讓我們舀舀看。
在不同的時(shí)期對(duì)頁面前端的看法似乎是多變的。在互聯(lián)網(wǎng)早期的時(shí)候,小車還是比房子貴的,燒餅和粉絲還只是用來吃的,菊花還只是用來泡茶的。那時(shí)的頁面設(shè)計(jì)風(fēng)格相對(duì)單一,對(duì)應(yīng)的頁面需求比較簡(jiǎn)單,并且當(dāng)時(shí)的瀏覽器也基本是IE6的天下,javascript也只是網(wǎng)頁特效的代名詞,HTML頁面本身沒有引起太多人的關(guān)注,似乎只要能用div甚至table加css輔助把圖片定好位,把頁面內(nèi)容預(yù)留好就OK了,并且這種觀念存在了很長(zhǎng)一段時(shí)間。隨著頁面內(nèi)容的豐富,設(shè)計(jì)風(fēng)格的發(fā)展,交互復(fù)雜性的增加,AJAX的應(yīng)用,瀏覽器的更新?lián)Q代,又讓大家重新對(duì)最基本的頁面本身重視起來。然后熱議的就是瀏覽器的兼容性,碰到問題最熱衷的就是滿網(wǎng)絡(luò)搜索hack,順便再罵罵IE6、7……當(dāng)這些都做一遍后,似乎又遇到了瓶頸,又開始尋找出路。我們就從這個(gè)階段開始說起。
實(shí)現(xiàn)效果圖是最基本的工作
把視覺稿通過頁面代碼的方式表現(xiàn)出來包含了兩個(gè)基本訴求:1.能夠真實(shí)反映視覺稿;2.能夠通過瀏覽器的兼容。這兩個(gè)訴求的達(dá)成需要我們有追求細(xì)節(jié)的態(tài)度和一定的頁面功底,能完成這兩個(gè)內(nèi)容就可以初步進(jìn)入頁面前端的從業(yè)者行列了,但這就代表著我們可以勝任頁面開發(fā)的工作了?不,才剛剛開始!
與設(shè)計(jì)師的溝通和項(xiàng)目的參與
溝通很重要。先拋出幾個(gè)問題:我們有沒有和設(shè)計(jì)師探討過某些效果對(duì)低端瀏覽器渲染效率影響比較大?有沒有探討過部分效果可以用CSS3實(shí)現(xiàn)從而使得結(jié)構(gòu)更加簡(jiǎn)潔清晰?有沒有在代碼和視覺中尋追求過平衡?頁面前端的開發(fā)向基本用戶,編寫的代碼也直接作用在瀏覽器上,我們有義務(wù)對(duì)頁面的穩(wěn)定性和渲染效率負(fù)責(zé)。我們也經(jīng)常碰到項(xiàng)目在總體進(jìn)度壓力下導(dǎo)致的設(shè)計(jì)與頁面前端開發(fā)同步進(jìn)行,這時(shí)更有必要盡量多地獲取項(xiàng)目信息,了解我們還要做些什么,這些可以幫助我們充分考慮重用和框架拓展。
良好的頁面結(jié)構(gòu)
頁面結(jié)構(gòu)的編寫好比蓋房的地基建設(shè),其好壞會(huì)直接影響到CSS代碼的質(zhì)量、js開發(fā)、后臺(tái)開發(fā)還會(huì)影響到以后的頁面拓展、迭代和頁面調(diào)整。拿到視覺稿后,不要忙著動(dòng)手開始,多觀察思考。先分析布局,劃分框架,然后規(guī)劃結(jié)構(gòu),編寫代碼。特別在大型項(xiàng)目中,合理使用模塊化的開發(fā)不論從整體進(jìn)行還是拓展維護(hù)都有相當(dāng)大的好處。
關(guān)于hack
很多同學(xué)在頁面開發(fā)時(shí)上網(wǎng)搜索最多的就是hack了,是否我們完全要依賴hack來實(shí)現(xiàn)頁面兼容性,答案是否定的。大家經(jīng)常比喻IE6向我們?nèi)隽艘粋€(gè)謊,結(jié)果我們要再撒一百個(gè)謊來圓這個(gè)謊。不否認(rèn)IE6經(jīng)常讓我們口吐鮮血,但不代表我們用更多的“謊言”來彌補(bǔ)就可以心安理得。大部分情況下可以通過變換思路調(diào)整HTML結(jié)構(gòu),或使用一些雖然無法解釋但相對(duì)安全的css來干掉hack。誰都無法預(yù)計(jì)使用hack什么時(shí)候會(huì)讓我們?cè)砸粋€(gè)大跟頭。比如觸發(fā)layout或position:relative就可以幫助解決很多IE6的問題。
優(yōu)美的代碼
現(xiàn)在很多web項(xiàng)目功能復(fù)雜,代碼規(guī)模也會(huì)變得很龐大,如何更好地進(jìn)行協(xié)同開發(fā)和維護(hù)是我們面臨的一個(gè)問題。需要考慮完善統(tǒng)一的規(guī)劃,還有要養(yǎng)成良好的代碼開發(fā)習(xí)慣才會(huì)在面臨各種情況時(shí)游刃有余。翻閱頁面代碼,看到合理的標(biāo)簽使用、良好的注釋、清晰的代碼結(jié)構(gòu)、用意準(zhǔn)確的css不僅猶如欣賞一個(gè)藝術(shù)品,更為下游開發(fā)和協(xié)同開發(fā)降低了不小的溝通成本,我們有什么理由不去這么做呢?舉個(gè)反面例子:div濫用是現(xiàn)在比較典型的一個(gè)問題。數(shù)數(shù)看自己使用的標(biāo)簽有多少個(gè)呢?不同的語義都該使用對(duì)應(yīng)的標(biāo)簽代碼,特別是HTML5提供了更豐富的語義化標(biāo)簽,它們都苦苦地在等待戰(zhàn)場(chǎng)上的沖鋒號(hào),讓我們?nèi)ソ夥潘鼈儼桑?
無障礙頁面開發(fā)
可訪問性與易用性是非常主觀且人性化的東西。普通人看上去上完美呈現(xiàn)的頁面在特殊群體中不一定顯得那么貼心。當(dāng)盲人用讀屏軟件在頁面某個(gè)區(qū)域內(nèi)陷入循環(huán)時(shí),我們應(yīng)該感到內(nèi)疚。只能說目前國(guó)內(nèi)的網(wǎng)站對(duì)此的重視程度還遠(yuǎn)遠(yuǎn)不夠,這就需要我們共同努力,讓更多的人感受到我們的熱情。>
保障效率
作為項(xiàng)目開發(fā)中比較靠前的一環(huán),頁面開發(fā)可能需要盡早完成為項(xiàng)目爭(zhēng)取時(shí)間,這就需要我們盡可能地提高效率。“工欲善其事,必先利其器”,除了實(shí)戰(zhàn)經(jīng)驗(yàn)和代碼習(xí)慣的形成可以幫助我們提高效率外,想要提高對(duì)自己開發(fā)的進(jìn)度掌控能力,還有很多輔助工具可以幫助我們進(jìn)行頁面開發(fā)。比如使用Less或Sass可以幫助我們拓展和組織CSS,大大提高CSS的編寫效率增加了可維護(hù)性。比如可以通過zen coding的自動(dòng)自動(dòng)完成和自定義代碼塊讓你可以劍指如飛。甚至還見過通過自定義輸入法的代碼塊關(guān)鍵字來提升開發(fā)速度的。多多發(fā)掘一定會(huì)找到最合適自己使用的工具。
針對(duì)服務(wù)器的優(yōu)化
頁面開發(fā)也需要了解服務(wù)器的優(yōu)化,盡量減小服務(wù)器負(fù)擔(dān)。比如css sprite就是一個(gè)典型減小服務(wù)器請(qǐng)求數(shù)的例子。在網(wǎng)易郵箱的頁面前端開發(fā)中大家不停地在做著各種優(yōu)化,比如一直在尋求文件大小與服務(wù)器請(qǐng)求數(shù)的平衡;為了盡可能提高緩存利用率采用了補(bǔ)丁升級(jí);對(duì)class名進(jìn)行了混淆壓縮避免命名過長(zhǎng)的冗余;應(yīng)用base64減少請(qǐng)求數(shù)量等等措施。這些都是綜合權(quán)衡的結(jié)果,需要考慮各個(gè)方面整體優(yōu)化。因?yàn)楫?dāng)頁面訪問量達(dá)到一定的數(shù)量級(jí)時(shí),再小的一點(diǎn)優(yōu)化都會(huì)達(dá)到可觀的效果,再小的問題都可能會(huì)形成巨大的災(zāi)難。
擁抱HTML5
這是一個(gè)充滿機(jī)會(huì)的時(shí)代,HTML5時(shí)代的來臨伴隨著移動(dòng)互聯(lián)網(wǎng)的興起創(chuàng)造了更大的機(jī)會(huì),還有太多的東西值得我們?nèi)W(xué)習(xí)去發(fā)現(xiàn)。 HTML5提供了豐富的JS API接口,需要我們?nèi)パ芯?;CSS3的絢麗吸引了足夠多的眼球,需要我們?nèi)パ芯浚灰苿?dòng)設(shè)備上如何開發(fā)更加適配的頁面,需要我們?nèi)パ芯?hellip;…
Stay Hungry, Stay Foolish
水是越舀越多了,卻發(fā)現(xiàn)原來下面還深不見底,上面的內(nèi)容越是深入研究就越會(huì)發(fā)現(xiàn)更多山川需要翻越。保持饑餓狀態(tài),用眼睛去努力發(fā)現(xiàn)發(fā)掘,不斷豐富技能才能找到定位,突破瓶頸,正所謂“唯有高屋建瓴方可水到渠成”。形成本文是因?yàn)橹昂屯杏懻摰狡款i的問題,想給自己,給頁面前端的同學(xué)一起找找定位,梳理一下思路。拿蘋果CEO在斯坦福演講的一句話“Stay Hungry, Stay Foolish”和大家共勉。
在不同的時(shí)期對(duì)頁面前端的看法似乎是多變的。在互聯(lián)網(wǎng)早期的時(shí)候,小車還是比房子貴的,燒餅和粉絲還只是用來吃的,菊花還只是用來泡茶的。那時(shí)的頁面設(shè)計(jì)風(fēng)格相對(duì)單一,對(duì)應(yīng)的頁面需求比較簡(jiǎn)單,并且當(dāng)時(shí)的瀏覽器也基本是IE6的天下,javascript也只是網(wǎng)頁特效的代名詞,HTML頁面本身沒有引起太多人的關(guān)注,似乎只要能用div甚至table加css輔助把圖片定好位,把頁面內(nèi)容預(yù)留好就OK了,并且這種觀念存在了很長(zhǎng)一段時(shí)間。隨著頁面內(nèi)容的豐富,設(shè)計(jì)風(fēng)格的發(fā)展,交互復(fù)雜性的增加,AJAX的應(yīng)用,瀏覽器的更新?lián)Q代,又讓大家重新對(duì)最基本的頁面本身重視起來。然后熱議的就是瀏覽器的兼容性,碰到問題最熱衷的就是滿網(wǎng)絡(luò)搜索hack,順便再罵罵IE6、7……當(dāng)這些都做一遍后,似乎又遇到了瓶頸,又開始尋找出路。我們就從這個(gè)階段開始說起。
實(shí)現(xiàn)效果圖是最基本的工作
把視覺稿通過頁面代碼的方式表現(xiàn)出來包含了兩個(gè)基本訴求:1.能夠真實(shí)反映視覺稿;2.能夠通過瀏覽器的兼容。這兩個(gè)訴求的達(dá)成需要我們有追求細(xì)節(jié)的態(tài)度和一定的頁面功底,能完成這兩個(gè)內(nèi)容就可以初步進(jìn)入頁面前端的從業(yè)者行列了,但這就代表著我們可以勝任頁面開發(fā)的工作了?不,才剛剛開始!
與設(shè)計(jì)師的溝通和項(xiàng)目的參與
溝通很重要。先拋出幾個(gè)問題:我們有沒有和設(shè)計(jì)師探討過某些效果對(duì)低端瀏覽器渲染效率影響比較大?有沒有探討過部分效果可以用CSS3實(shí)現(xiàn)從而使得結(jié)構(gòu)更加簡(jiǎn)潔清晰?有沒有在代碼和視覺中尋追求過平衡?頁面前端的開發(fā)向基本用戶,編寫的代碼也直接作用在瀏覽器上,我們有義務(wù)對(duì)頁面的穩(wěn)定性和渲染效率負(fù)責(zé)。我們也經(jīng)常碰到項(xiàng)目在總體進(jìn)度壓力下導(dǎo)致的設(shè)計(jì)與頁面前端開發(fā)同步進(jìn)行,這時(shí)更有必要盡量多地獲取項(xiàng)目信息,了解我們還要做些什么,這些可以幫助我們充分考慮重用和框架拓展。
良好的頁面結(jié)構(gòu)
頁面結(jié)構(gòu)的編寫好比蓋房的地基建設(shè),其好壞會(huì)直接影響到CSS代碼的質(zhì)量、js開發(fā)、后臺(tái)開發(fā)還會(huì)影響到以后的頁面拓展、迭代和頁面調(diào)整。拿到視覺稿后,不要忙著動(dòng)手開始,多觀察思考。先分析布局,劃分框架,然后規(guī)劃結(jié)構(gòu),編寫代碼。特別在大型項(xiàng)目中,合理使用模塊化的開發(fā)不論從整體進(jìn)行還是拓展維護(hù)都有相當(dāng)大的好處。
關(guān)于hack
很多同學(xué)在頁面開發(fā)時(shí)上網(wǎng)搜索最多的就是hack了,是否我們完全要依賴hack來實(shí)現(xiàn)頁面兼容性,答案是否定的。大家經(jīng)常比喻IE6向我們?nèi)隽艘粋€(gè)謊,結(jié)果我們要再撒一百個(gè)謊來圓這個(gè)謊。不否認(rèn)IE6經(jīng)常讓我們口吐鮮血,但不代表我們用更多的“謊言”來彌補(bǔ)就可以心安理得。大部分情況下可以通過變換思路調(diào)整HTML結(jié)構(gòu),或使用一些雖然無法解釋但相對(duì)安全的css來干掉hack。誰都無法預(yù)計(jì)使用hack什么時(shí)候會(huì)讓我們?cè)砸粋€(gè)大跟頭。比如觸發(fā)layout或position:relative就可以幫助解決很多IE6的問題。
優(yōu)美的代碼
現(xiàn)在很多web項(xiàng)目功能復(fù)雜,代碼規(guī)模也會(huì)變得很龐大,如何更好地進(jìn)行協(xié)同開發(fā)和維護(hù)是我們面臨的一個(gè)問題。需要考慮完善統(tǒng)一的規(guī)劃,還有要養(yǎng)成良好的代碼開發(fā)習(xí)慣才會(huì)在面臨各種情況時(shí)游刃有余。翻閱頁面代碼,看到合理的標(biāo)簽使用、良好的注釋、清晰的代碼結(jié)構(gòu)、用意準(zhǔn)確的css不僅猶如欣賞一個(gè)藝術(shù)品,更為下游開發(fā)和協(xié)同開發(fā)降低了不小的溝通成本,我們有什么理由不去這么做呢?舉個(gè)反面例子:div濫用是現(xiàn)在比較典型的一個(gè)問題。數(shù)數(shù)看自己使用的標(biāo)簽有多少個(gè)呢?不同的語義都該使用對(duì)應(yīng)的標(biāo)簽代碼,特別是HTML5提供了更豐富的語義化標(biāo)簽,它們都苦苦地在等待戰(zhàn)場(chǎng)上的沖鋒號(hào),讓我們?nèi)ソ夥潘鼈儼桑?
無障礙頁面開發(fā)
可訪問性與易用性是非常主觀且人性化的東西。普通人看上去上完美呈現(xiàn)的頁面在特殊群體中不一定顯得那么貼心。當(dāng)盲人用讀屏軟件在頁面某個(gè)區(qū)域內(nèi)陷入循環(huán)時(shí),我們應(yīng)該感到內(nèi)疚。只能說目前國(guó)內(nèi)的網(wǎng)站對(duì)此的重視程度還遠(yuǎn)遠(yuǎn)不夠,這就需要我們共同努力,讓更多的人感受到我們的熱情。>
保障效率
作為項(xiàng)目開發(fā)中比較靠前的一環(huán),頁面開發(fā)可能需要盡早完成為項(xiàng)目爭(zhēng)取時(shí)間,這就需要我們盡可能地提高效率。“工欲善其事,必先利其器”,除了實(shí)戰(zhàn)經(jīng)驗(yàn)和代碼習(xí)慣的形成可以幫助我們提高效率外,想要提高對(duì)自己開發(fā)的進(jìn)度掌控能力,還有很多輔助工具可以幫助我們進(jìn)行頁面開發(fā)。比如使用Less或Sass可以幫助我們拓展和組織CSS,大大提高CSS的編寫效率增加了可維護(hù)性。比如可以通過zen coding的自動(dòng)自動(dòng)完成和自定義代碼塊讓你可以劍指如飛。甚至還見過通過自定義輸入法的代碼塊關(guān)鍵字來提升開發(fā)速度的。多多發(fā)掘一定會(huì)找到最合適自己使用的工具。
針對(duì)服務(wù)器的優(yōu)化
頁面開發(fā)也需要了解服務(wù)器的優(yōu)化,盡量減小服務(wù)器負(fù)擔(dān)。比如css sprite就是一個(gè)典型減小服務(wù)器請(qǐng)求數(shù)的例子。在網(wǎng)易郵箱的頁面前端開發(fā)中大家不停地在做著各種優(yōu)化,比如一直在尋求文件大小與服務(wù)器請(qǐng)求數(shù)的平衡;為了盡可能提高緩存利用率采用了補(bǔ)丁升級(jí);對(duì)class名進(jìn)行了混淆壓縮避免命名過長(zhǎng)的冗余;應(yīng)用base64減少請(qǐng)求數(shù)量等等措施。這些都是綜合權(quán)衡的結(jié)果,需要考慮各個(gè)方面整體優(yōu)化。因?yàn)楫?dāng)頁面訪問量達(dá)到一定的數(shù)量級(jí)時(shí),再小的一點(diǎn)優(yōu)化都會(huì)達(dá)到可觀的效果,再小的問題都可能會(huì)形成巨大的災(zāi)難。
擁抱HTML5
這是一個(gè)充滿機(jī)會(huì)的時(shí)代,HTML5時(shí)代的來臨伴隨著移動(dòng)互聯(lián)網(wǎng)的興起創(chuàng)造了更大的機(jī)會(huì),還有太多的東西值得我們?nèi)W(xué)習(xí)去發(fā)現(xiàn)。 HTML5提供了豐富的JS API接口,需要我們?nèi)パ芯?;CSS3的絢麗吸引了足夠多的眼球,需要我們?nèi)パ芯浚灰苿?dòng)設(shè)備上如何開發(fā)更加適配的頁面,需要我們?nèi)パ芯?hellip;…
Stay Hungry, Stay Foolish
水是越舀越多了,卻發(fā)現(xiàn)原來下面還深不見底,上面的內(nèi)容越是深入研究就越會(huì)發(fā)現(xiàn)更多山川需要翻越。保持饑餓狀態(tài),用眼睛去努力發(fā)現(xiàn)發(fā)掘,不斷豐富技能才能找到定位,突破瓶頸,正所謂“唯有高屋建瓴方可水到渠成”。形成本文是因?yàn)橹昂屯杏懻摰狡款i的問題,想給自己,給頁面前端的同學(xué)一起找找定位,梳理一下思路。拿蘋果CEO在斯坦福演講的一句話“Stay Hungry, Stay Foolish”和大家共勉。
相關(guān)文章
AudioContext 實(shí)現(xiàn)音頻可視化(web技術(shù)分享)
這篇文章主要分享的是web技術(shù)的 AudioContext 實(shí)現(xiàn)音頻可視化,要實(shí)現(xiàn)音頻可視化得先實(shí)現(xiàn)一些炫酷的效果需要借助 Web Audio API提供的一些方法 AudioContext,下面詳細(xì)內(nèi)容2022-02-23- 這篇文章主要給大家介紹了web技術(shù)中的WebRTC記錄音視頻流,文章內(nèi)容圍繞主題展相關(guān)資料,需要的小伙伴可以參考一下,希望對(duì)你有所幫助2022-02-23
- 這是我通過網(wǎng)上查閱資料總結(jié)的一些編碼規(guī)范,用于鞏固對(duì)html,css頁面重構(gòu)時(shí)的基礎(chǔ),需要的朋友可以參考下2020-12-19
前端編碼規(guī)范(4)—— CSS 和 Sass (SCSS) 開發(fā)規(guī)范
這篇文章主要介紹了前端編碼規(guī)范(4)—— CSS 和 Sass (SCSS) 開發(fā)規(guī)范,需要的朋友可以參考下2017-01-21Web前端開發(fā)規(guī)范2017(HTML/JavaScript/CSS)
這是一份旨在增強(qiáng)團(tuán)隊(duì)的開發(fā)協(xié)作,提高代碼質(zhì)量和打造開發(fā)基石的編碼風(fēng)格規(guī)范,其中包含了 HTML, JavaScript 和 CSS/SCSS 這幾個(gè)部分。我們知道,當(dāng)一個(gè)團(tuán)隊(duì)開始指定并實(shí)行2017-01-21- 這篇文章主要為大家介紹了前端開發(fā)團(tuán)隊(duì)遵循和約定的代碼書寫規(guī)范,意在提高代碼的規(guī)范性和可維護(hù)性,需要的朋友可以參考下2017-01-21
響應(yīng)式Web之流式網(wǎng)格系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了響應(yīng)式Web之流式網(wǎng)格系統(tǒng)的相關(guān)資料,感興趣的小伙伴們可以參考一下2016-07-04在網(wǎng)頁標(biāo)題欄上和收藏夾顯示網(wǎng)站logo的實(shí)現(xiàn)方法
下面小編就為大家分享一篇在網(wǎng)頁標(biāo)題欄上和收藏夾顯示網(wǎng)站logo的實(shí)現(xiàn)方法。希望對(duì)大家有所幫助。一起跟隨小編過來看看吧,祝大家游戲愉快哦2016-03-16Visual Foxpro 6.0 中文版安裝向?qū)?圖解)
基于很多用戶都在下載Visual Foxpro 6.0,但是有安裝vtp6.0經(jīng)驗(yàn)的朋友確很少,在安裝過程中總會(huì)出現(xiàn)這樣那樣的問題,基于這些問題,下面小編抽個(gè)時(shí)間把Visual Foxpro 6.02015-09-09網(wǎng)站日志200 0 64狀態(tài)碼的分析(協(xié)議子狀態(tài))
網(wǎng)站日志200 0 64狀態(tài)碼的分析介紹2012-10-29