本文總結了30條html代碼編寫指南,只要在編寫html代碼的過程中牢記它們,靈活運用,你一定會寫出一手漂亮的代碼,早日邁入專業開發者的行列。
在以往的頁面源代碼裡,經常看到這樣的語句:
<li>some text here.<li>some new text here.<li>you get the idea.也許過去我們可以容忍這樣的非閉合html標籤,但在今天的標準來看,這是非常不可取的,是必須百分百避免的。一定要注意閉合你的html標籤,否則將無法通過驗證,並且容易出現一些難以預見的問題。
最好使用這樣的形式:
<ul><li>some text here. </li><li>some new text here. </li><li>you get the idea. </li></ul>筆者早先曾加入過許多css論壇,在那裡,如果有用戶遇到問題,我們會建議他首先做兩件事:
通常有四種文檔類型可供選擇:doctype 定義在html標籤出現之前,它告訴瀏覽器這個頁麵包含的是html,xhtml,還是兩者混合出現,這樣瀏覽器才能正確的解析標記。
1. <!doctype html public -//w3c//dtd html 4.01//en http://www.w3.org/tr/html4/strict.dtd>2. <!doctype html public -//w3c//dtd html 4.01 transitional//en http://www.w3.org/tr/html4/loose.dtd>3. <!doctype html public -//w3c//dtd xhtml 1.0 transitional//en http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd>4. <!doctype html public -//w3c//dtd xhtml 1.0 strict//en http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd>關於該使用什麼樣的文檔類型聲明,一直有不同的說法。通常認為使用最嚴格的聲明是最佳選擇,但研究表明,大部分瀏覽器會使用普通的方式解析這種聲明,所以很多人選擇使用html4.01標準。選擇聲明的底線是,它是不是真的適合你,所以你要綜合考慮來選擇適合你得項目的聲明。
當你在埋頭寫代碼時,可能會經常順手或偷懶的加上一點嵌入式css代碼,就像這樣:
<p style=color: red;>网页设计</p>這樣看起來即方便又沒有問題,但是它會在你得代碼中產生問題。
在你開始寫代碼時,最好是在內容結構完成之後再開始加入樣式代碼。
這樣的編碼方式就像打游擊,是一種很山寨的做法。 -chris coyier
更好的做法是,把這個p的樣式定義在樣式表文件裡:
someelement > p {color: red;}理論上講,你可以在任何位置引入css樣式表,但html規范建議在網頁的head標記中引入,這樣可以加快頁面的渲染速度。
在雅虎的開發過程中,我們發現,在head標籤中引入樣式表,會加快網頁加載速度,
因為這樣可以使頁面逐步渲染。 - yslow團隊
<head><title>my favorites kinds of corn</title><link rel=stylesheet type=text/css media=screen href=path/to/file.css /><link rel=stylesheet type=text/css media=screen href=path/to/anotherfile.css /></head>要記住一個原則,就是讓頁面以最快的速度呈現在用戶面前。當加載一個腳本時,頁面會暫停加載,直到腳本完全載入。所以會浪費用戶更多的時間。
如果你的js文件只是要實現某些功能,(比如點擊按鈕事件),那就放心的在body底部引入它,這絕對是最佳的方法。
舉例: <p>and now you know my favorite kinds of corn. </p><script type=text/javascript src=path/to/file.js></script><script type=text/javascript src=path/to/anotherfile.js></script></body></html>許多年以前,還存在一種這樣的方式,就是直接將js代碼加入到html標籤中。尤其是在簡單的圖片相冊中非常常見。本質上講,一個onclick事件是附加在標籤上的,其效果等同於一些js代碼。不需要討論太多,非常不應該使用這樣的方式,應該把代碼轉移到一個外部js文件中,然後使用addeventlistener / attachevent 加入時間偵聽器。或者使用jquery等框架,之需要使用其clock方法。
$('a#morecorninfolink').click(function() {alert('want to learn more about corn?');});很多人並不真正理解標準驗證的意義和價值,筆者在一篇博客中詳細分析了這個問題。一句話,標準驗證是為你服務的,不是給你找麻煩的。
如果你剛開始從事網頁製作,那強烈建議你下載這個網頁開發工具條,並在編碼過程中隨時使用html標準驗證和css標準驗證。如果你認為css是一種非常好學的語言,那麼它會把你整的死去活來。你的不嚴謹的代碼會讓你的頁面漏洞百出,問題不斷,一個好的方法就是- 驗證,驗證,再驗證。
firebug是當之無愧的網頁開發最佳插件,它不但可以調試javascript,還可以直觀的讓你了解頁面標記的屬性和位置。不用多說, 下載它!
據筆者觀察,大部分的使用者僅僅使用了firebug 20%的功能,那真是太浪費了,你不妨花幾個小時的時間來系統學習這個工具,相信會讓你事半功倍。
firebug教程:理論上講,你可以像這樣隨性的書寫標記:
<div><p>here's an interesting fact about corn. </p></div>最好不要這樣寫,費力氣輸入大些字母沒有任何用處,並且會讓代碼很難看,這樣子就很好:
<div><p>here's an interesting fact about corn. </p></div>筆者建議你在網頁中使用其中全部六種標記,雖然大部分人只會用到前四個,但使用最多的h會有很多好處,比如設備友好、搜索引擎友好等,不妨把你的p標籤都替換成h6。
今天筆者在twitter上發起一次討論:是該把h1定義到logo上還是定義到文章標題上,有80%的人選擇了後者。
當然具體如何使用要看你的需求,但我建議你在建立博客的時候,將文章題目定為h1,這對搜索引擎優化(seo)是非常有好處的。
在過去幾年裡,雅虎的團隊在前端開發領域做了許多偉大的工作。前不久,它們發布了一個叫yslow的firebug擴展,它會分析你的<網頁,並返回一個成績單,上面細緻分析了這個網頁的方方面面,提出需要改進的地方,雖然它有點苛刻,但它絕對會對你有所幫助,強烈推薦- yslow!
通常網站都會有導航菜單,你可以用這樣的方式定義:
<div id=nav><a href=#>home </a><a href=#>about </a><a href=#>contact </a></div>如果你想書寫優美的代碼,那最好不要用這種方式,
為什麼要用ul佈局導航菜單?
-因為ul生來就是為定義列表準備的
最好這樣定義:
<ul id=nav><li><a href=#>home</a></li><li><a href=#>about</a></li><li><a href=#>contact</a></li></ul>ie一直以來都是前端開發人員的噩夢!
如果你的css樣式表基本定型了,那麼可以為ie單獨建立一個樣式表,然後這樣僅對ie生效:
<!--[if lt ie 7]><link rel=stylesheet type=text/css media=screen href=path/to/ie.css /><![endif]-->這些代碼的意思是:如果用戶瀏覽器是ie6及以下,那這段代碼才會生效。如果你想把ie7也包含進來,那麼就把[if lt ie 7]改為[if lte ie 7]。
不論你是windows還是mac用戶,這裡都有很多優秀的編輯器供你選擇:
回望我們大多數人寫的第一個頁面,一定會發現嚴重的div癖( divitis ),通常初學者的本能就是把一個段落用div包起來,然後為了控制定位而套上更多的div。 - 其實這是一種低效而有害的做法。
網頁寫完後,一定要多次回頭檢查,盡量的減少元素的數量。
能用ul佈局的列表就不要用一個個的div去佈局。
正如寫文章的關鍵是縮減,縮減,縮減一樣,寫頁面也要遵循這個標準。
為圖片加上alt屬性的好處是不言而喻的- 這樣可以讓禁用圖片或者使用特殊設備的用戶無障礙得了解你的王爺信息,並且對圖像搜索引擎友好。
firefox不支持顯示圖像alt屬性,可以加入title屬性:
<img src=cornimage.jpg alt=网页设计title=网页设计/>我經常不知不覺的學習工作到凌晨,我認為這是個很好的狀況。
我的啊~哈!時間( ah-ha moments,指柳暗花明或豁然開朗的時刻)通常都發生在深夜,比如我徹底理解javascript的閉包概念,就是在這樣一種情況下。如果你還沒有感受過這種奇妙的時刻,那就馬上試試吧!
沒有什麼比模仿你的偶像能讓你更快的學習html。起初,我們都要甘做複印機,然後慢慢得發展自己的風格。研究你喜歡的網站頁面代碼,看看他們是怎麼實現的。這是高手的必經之路,你一定要試一下。注意:只是學習和模仿他們的編碼風格,而不是抄襲和照搬!
留意網絡上各種炫酷的javascript效果,如果看上去是使用了插件,那根據它源碼中head標籤內的文件名,就可以找到這個插件名稱,然後就可以學習它據為己用。
這一條在你製作其他公司企業網站時尤為必要。你自己不使用blockquote標記?那用戶可能會用,你自己不使用ol?用戶也可能會。花時間做一個頁面,顯示出ul, ol, p, h1-h6, blockquotes, 等等元素的樣式,檢查一下是否有遺漏。
譯者註:英文原文標題為使用twitter
現在互聯網上流行著許多可以免費加在網頁中的api,這些工具非常強大。它可以幫你實現許多巧妙的功能,更重要的是可以幫你宣傳網站。
photoshop是前端工程師的一個重要工具,如果你已經熟練掌握html和css,那不妨多學習一下photshop。
雖然有些html標籤很少用到,但你依然應該了解他們。比如abbr、cite等,你必須學習它們以備不時之需。
網絡上有許許多多優秀的資源,而社區中也隱藏著許多高手,這裡你既可以自學,也能請教經驗豐富的開發者。
css reset也就reset css ,就是重置一些html標籤樣式,或者說默認的樣式。
關於是否應該使用css reset,網上也有激烈的爭論,筆者是建議使用的。你可以先選用一些成熟的css reset,然後慢慢演變成適合自己的。
簡單來說,你應該盡可能的對齊你的網頁元素。可以觀察一下你喜歡的網站,它們的logo、標題、圖表、段落肯定是對得非常整齊的。否則就會顯得混亂和不專業。
現在你已經掌握了html、css、photoshop知識,那麼你還需要學習如何把psd轉換為網頁上的圖片和背景,下面有兩個不錯的教程:
javascript和css都有許多優秀的框架,但如果你是初學者,不要急於使用它們。如果你還沒能熟練的駕馭css,使用框架會混淆你的知識體系。
css框架是為熟練開發者設計的,這樣會節省它們大量的時間。