本文總結了30條html代碼編寫指南,隻要在編寫HTML代碼的過程中牢記它們,靈活運用,你一定會寫出一手漂亮的代碼,早日邁入專業開發者的行列。
1. 一定要閉合HTML标簽
在以往的頁面源代碼裡,經常看到這樣的語句:
1 <li>Some text here.
2 <li>Some new text here.
3 <li>You get the idea.
也許過去我們可以容忍這樣的非閉合HTML标簽,但在今天的标準來看,這是非常不可取的,是必須百分百避免的。一定要注意閉合你的HTML标簽,否則将無法通過驗證,并且容易出現一些難以預見的問題。
最好使用這樣的形式:
1 <ul>
2 <li>Some text here. </li>
3 <li>Some new text here. </li>
4 <li>You get the idea. </li>
5 </ul>
2. 聲明正确的文檔類型( DocType )
筆者早先曾加入過許多CSS論壇,在那裡,如果有使用者遇到問題,我們會建議他首先做兩件事:
1. 驗證CSS檔案,解決所有可見的錯誤
2. 加上文檔類型 Doctype
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标準。選擇聲明的底線是,它是不是真的适合你,是以你要綜合考慮來選擇适合你得項目的聲明。
3. 不要使用嵌入式CSS樣式
當你在埋頭寫代碼時,可能會經常順手或偷懶的加上一點嵌入式css代碼,就象這樣:
1 <p style="color: red;">帕蘭映像</p>
這樣看起來即友善又沒有問題,但是它會在你得代碼中産生問題。
在你開始寫代碼時,最好是在内容結構完成之後再開始加入樣式代碼。
這樣的編碼方式就像打遊擊,是一種很山寨的做法。——Chris Coyier
更好的做法是,把這個P的樣式定義在樣式表檔案裡:
4. 在頁面head标簽中引入所有的樣式表檔案
理論上講,你可以在任何位置引入CSS樣式表,但HTML規範建議在網頁的head标記中引入,這樣可以加快頁面的渲染速度。
在雅虎的開發過程中,我們發現,在head标簽中引入樣式表,會加快網頁加載速度,因為這樣可以使頁面逐漸渲染。 —— ySlow團隊
1 <head>
2 <title>My Favorites Kinds of Corn</title>
3 <link rel="stylesheet" type="text/css" media="screen" href="path/to/file.css" />
4 <link rel="stylesheet" type="text/css" media="screen" href="path/to/anotherFile.css" />
5 </head>
5. 在頁面底部引入javascript檔案
要記住一個原則,就是讓頁面以最快的速度呈現在使用者面前。當加載一個腳本時,頁面會暫停加載,直到腳本完全載入。是以會浪費使用者更多的時間。
如果你的JS檔案隻是要實作某些功能,(比如點選按鈕事件),那就放心的在body底部引入它,這絕對是最佳的方法。
舉例:
1 <p>And now you know my favorite kinds of corn. </p>
2 <script type="text/javascript" src="path/to/file.js"></script>
3 <script type="text/javascript" src="path/to/anotherFile.js"></script>
4 </body>
5 </html>
6. 不要使用嵌入式JavaScript,這都21世紀了!
許多年以前,還存在一種這樣的方式,就是直接将JS代碼加入到HTML标簽中。尤其是在簡單的圖檔相冊中非常常見。本質上講,一個“onclick”事件是附加在 标簽上的,其效果等同于一些JS代碼。不需要讨論太多,非常不應該使用這樣的方式,應該把代碼轉移到一個外部JS檔案中,然後使用“ addEventListener / attachEvent ”加入時間偵聽器。或者使用jquery等架構,之需要使用其“clock”方法。
1 $('a#moreCornInfoLink').click(function() {
2 alert('Want to learn more about corn?');
3 });
7. 開發中随時進行标準驗證
很多人并不真正了解标準驗證的意義和價值,筆者在一篇部落格中詳細分析了這個問題。一句話,标準驗證是為你服務的,不是給你找麻煩的。
如果你剛開始從事網頁制作,那強烈建議你下載下傳這個網頁開發工具條(https://addons.mozilla.org/en-US/firefox/addon/60) ,并在編碼過程中随時使用”HTML标準驗證”和“CSS标準驗證”。如果你認為CSS是一種非常好學的語言,那麼它會把你整的死去活來。你的不嚴謹的代碼會讓你的頁面漏洞百出,問題不斷,一個好的方法就是—— 驗證,驗證,再驗證。
8. 下載下傳Firebug
Firebug是當之無愧的網頁開發最佳插件,它不但可以調試JavaScript,還可以直覺的讓你了解頁面标記的屬性和位置。不用多說, 下載下傳它(https://addons.mozilla.org/cn-ZH/firefox/addon/1843)!
9. 使用Firebug!
據筆者觀察,大部分的使用者僅僅使用了Firebug 20%的功能,那真是太浪費了,你不妨花幾個小時的時間來系統學習這個工具,相信會讓你事半功倍。
Firebug教程:
Overview of Firebug(http://michaelsync.net/2007/09/08/firebug-tutorial-overview-of-firebug)
Debug Javascript With Firebug – video tutorial(http://www.digitalmediaminute.com/screencast/firebug-js/)
10. 使用小寫的标記
理論上講,你可以像這樣随性的書寫标記:
1 <DIV>
2 <P>Here's an interesting fact about corn. </P>
3 </DIV>
最好不要這樣寫,費力氣輸入大些字母沒有任何用處,并且會讓代碼很難看,這樣子就很好:
1 <div>
2 <p>Here's an interesting fact about corn. </p>
3 </div>
11.使用H1 – H6标簽
筆者建議你在網頁中使用其中全部六種标記,雖然大部分人隻會用到前四個,但使用最多的H會有很多好處,比如裝置友好、搜尋引擎友好等,不妨把你的P标簽都替換成H6。
12. 如果是部落格,那把H1留給文章标題
今天筆者在Twitter上發起一次讨論:是該把H1定義到LOGO上還是定義到文章标題上,有80%的人選擇了後者。
當然具體如何使用要看你的需求,但我建議你在建立部落格的時候,将文章題目定為H1,這對搜尋引擎優化(seo)是非常有好處的。
13. 下載下傳ySlow
在過去幾年裡,雅虎的團隊在前端開發領域做了許多偉大的工作。前不久,它們釋出了一個叫ySlow的Firebug擴充,它會分析你的<網頁,并傳回 一個“成績單”,上面細緻分析了這個網頁的方方面面,提出需要改進的地方,雖然它有點苛刻,但它絕對會對你有所幫助,強烈推薦—— ySlow(http://developer.yahoo.com/yslow/)!
14. 使用UL清單布局導航菜單
通常網站都會有導航菜單,你可以用這樣的方式定義:
1 <div id="nav">
2 <a href="#">Home </a>
3 <a href="#">About </a>
4 <a href="#">Contact </a>
5 </div>
如果你想書寫優美的代碼,那最好不要用這種方式,
為什麼要用UL布局導航菜單?——因為UL生來就是為定義清單準備的
最好這樣定義:
1 <ul id="nav">
2 <li><a href="#">Home</a></li>
3 <li><a href="#">About</a></li>
4 <li><a href="#">Contact</a></li>
5 </ul>
15. 學會怎樣對付IE
IE一直以來都是前端開發人員的噩夢!
如果你的CSS樣式表基本定型了,那麼可以為IE單獨建立一個樣式表,然後這樣僅對IE生效:
1 <!--[if lt IE 7]>
2 <link rel="stylesheet" type="text/css" media="screen" href="path/to/ie.css" />
3 <![endif]-->
這些代碼的意思是:如果使用者浏覽器是IE6及以下,那這段代碼才會生效。如果你想把IE7也包含進來,那麼就把“[if lt IE 7]”改為“[if lte IE 7]”。
16. 使用一個好的代碼編輯器
不論你是Windows還是Mac使用者,這裡都有很多優秀的編輯器供你選擇:
Mac 使用者
- Coda(http://www.panic.com/coda/)
- Espresso(http://macrabbit.com/espresso/)
- TextMate(http://macromates.com/)
- Aptana(http://www.aptana.com/)
- DreamWeaver CS4(http://www.adobe.com/products/dreamweaver.html)
PC 使用者
- InType(http://intype.info/home/index.php)
- E-Text Editor(http://www.e-texteditor.com/)
- Notepad++(http://notepad-plus.sourceforge.net/uk/site.htm)
- Aptana(http://www.aptana.com/)
- Dreamweaver CS4(http://www.adobe.com/products/dreamweaver.html)
17. 壓縮前端代碼!
Javascript 壓縮服務
Javascript Compressor(http://javascriptcompressor.com/)
JS Compressor(http://www.xmlforasp.net/JSCompressor.aspx)
CSS Compression Services
CSS Optimiser(http://www.cssoptimiser.com/)
CSS Compressor(http://www.cssdrive.com/index.php/main/csscompressor/)
Clean CSS(http://www.cleancss.com/)
18. 縮減,縮減,縮減
回望我們大多數人寫的第一個頁面,一定會發現嚴重的 “DIV癖”( divitis ),通常初學者的本能就是把一個段落用DIV包起來,然後為了控制定位而套上更多的DIV。—— 其實這是一種低效而有害的做法。
網頁寫完後,一定要多次回頭檢查,盡量的減少元素的數量。能用UL布局的清單就不要用一個個的DIV去布局。
正如寫文章的關鍵是“縮減,縮減,縮減”一樣,寫頁面也要遵循這個标準。
19. 為所有的圖檔加上Alt屬性
為圖檔加上alt屬性的好處是不言而喻的 —— 這樣可以讓禁用圖檔或者使用特殊裝置的使用者無障礙得了解你的王爺資訊,并且對圖像搜尋引擎友好。
firefox不支援顯示圖像Alt屬性,可以加入title屬性:
1 <img src="cornImage.jpg" alt="帕蘭映像" title="帕蘭映像" />
20. 學會熬夜
我經常不知不覺的學習工作到淩晨,我認為這是個很好的狀況。
我的“啊~哈!”時間( “AH-HA” moments,指柳暗花明或豁然開朗的時刻)通常都發生在深夜,比如我徹底了解JavaScript的“閉包”概念,就是在這樣一種情況下。如果你還沒有感受過這種奇妙的時刻,那就馬上試試吧!
21. 檢視源代碼
沒有什麼比模仿你的偶像能讓你更快的學習HTML。起初,我們都要甘做影印機,然後慢慢得發展自己的風格。研究你喜歡的網站頁面代碼,看看他們是怎麼實作的。這是高手的必經之路,你一定要試一下。注意:隻是學習和模仿他們的編碼風格,而不是抄襲和照搬!
留意網絡上各種炫酷的JavaScript效果,如果看上去是使用了插件,那根據它源碼中head标簽内的檔案名,就可以找到這個插件名稱,然後就可以學習它據為己用。
22. 為所有的元素定義樣式
這一條在你制作其他公司企業網站時尤為必要。你自己不使用blockquote标記?那使用者可能會用,你自己不使用OL?使用者也可能會。花時間做一個頁面,顯示出ul, ol, p, h1-h6, blockquotes, 等等元素的樣式,檢查一下是否有遺漏。
23. 使用第三方服務
譯者注:英文原文标題為“使用twitter”
現在網際網路上流行着許多可以免費加在網頁中的API,這些工具非常強大。它可以幫你實作許多巧妙的功能,更重要的是可以幫你宣傳網站。
24. 學習photoshop
Photoshop是前端工程師的一個重要工具,如果你已經熟練掌握HTML和CSS,那不妨多學習一下Photshop。
Psdtuts+上有許多英文的飾品教程:Videos section
Lynda.com 也有大量教程,不過要支付$25美元
“You Suck at Photoshop” 系列教程
花費幾個小時的時間學習Photoshop的快捷鍵操作
25. 學習每一個HTML标簽
雖然有些HTML标簽很少用到,但你依然應該了解他們。比如“abbr”、“cite”等,你必須學習它們以備不時之需。
26. 參與社群讨論
網絡上有許許多多優秀的資源,而社群中也隐藏着許多高手,這裡你既可以自學,也能請教經驗豐富的開發者。
27. 使用CSS Reset
Css Reset也就Reset Css ,就是重置一些HTML标簽樣式,或者說預設的樣式。
關于是否應該使用CSS Reset,網上也有激烈的争論,筆者是建議使用的。你可以先選用一些成熟的CSS Reset,然後慢慢演變成适合自己的。
28. 對齊元素
簡單來說,你應該盡可能的對齊你的網頁元素。可以觀察一下你喜歡的網站,它們的LOGO、标題、圖表、段落肯定是對得非常整齊的。否則就會顯得混亂和不專業。
29. 關于PSD切片
現在你已經掌握了HTML、CSS、Photoshop知識,那麼你還需要學習如何把PSD轉換為網頁上的圖檔和背景,下面有兩個不錯的教程:
Slice and Dice that PSD(http://net.tutsplus.com/articles/news/slice-and-dice-that-psd/)
From PSD to HTML/CSS (http://net.tutsplus.com/videos/screencasts/converting-a-design-from-psd-to-html/)
30. 不要随意使用架構
Javascript和CSS都有許多優秀的架構,但如果你是初學者,不要急于使用它們。如果你還沒能熟練的駕馭CSS,使用架構會混淆你的知識體系。
CSS架構是為熟練開發者設計的,這樣會節省它們大量的時間。
原文:http://net.tutsplus.com/tutorials/html-css-techniques/30-html-best-practices-for-beginners/
譯文:http://paranimage.com/30-html-guidelines-for-beginners/