Web入門者必看的HTML程式碼編寫的30條軍規
摘要: 本文總結了30條html程式碼編寫指南,只要在編寫HTML程式碼的過程中牢記它們,靈活運用,你一定會寫出一手漂亮的程式碼,早日邁入專業開發者的行列。 1. 一定要閉合HTML標籤 在以往的頁面原始碼裡,經常看到這樣的語句: <li>Some text here. <li>Some new text here. <li>You get the idea. 也許過去我們可以容忍這樣的非閉合HTML標籤,但在今天的標準來看,這是非常不可取的,是必須百分百避免的。
本文總結了30條html程式碼編寫指南,只要在編寫HTML程式碼的過程中牢記它們,靈活運用,你一定會寫出一手漂亮的程式碼,早日邁入專業開發者的行列。
1. 一定要閉合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>
2. 宣告正確的文件型別( DocType )
筆者早先曾加入過許多CSS論壇,在那裡,如果有使用者遇到問題,我們會建議他首先做兩件事:
1. 驗證CSS檔案,解決所有可見的錯誤
2. 加上文件型別 Doctype
DOCTYPE 定義在HTML標籤出現之前,它告訴瀏覽器這個頁面包含的是HTML,XHTML,還是兩者混合出現,這樣瀏覽器才能正確的解析標記。
通常有四種文件型別可供選擇:
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <!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程式碼,就象這樣:
- <p style="color: red;">帕蘭映像</p>
這樣看起來即方便又沒有問題,但是它會在你得程式碼中產生問題。
在你開始寫程式碼時,最好是在內容結構完成之後再開始加入樣式程式碼。
這樣的編碼方式就像打游擊,是一種很山寨的做法。——Chris Coyier
更好的做法是,把這個P的樣式定義在樣式表檔案裡:
4. 在頁面head標籤中引入所有的樣式表檔案
理論上講,你可以在任何位置引入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>
5. 在頁面底部引入javascript檔案
要記住一個原則,就是讓頁面以最快的速度呈現在使用者面前。當載入一個指令碼時,頁面會暫停載入,直到指令碼完全載入。所以會浪費使用者更多的時間。
如果你的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>
6. 不要使用嵌入式JavaScript,這都21世紀了!
許多年以前,還存在一種這樣的方式,就是直接將JS程式碼加入到HTML標籤中。尤其是在簡單的圖片相簿中非常常見。本質上講,一個“onclick”事件是附加在 標籤上的,其效果等同於一些JS程式碼。不需要討論太多,非常不應該使用這樣的方式,應該把程式碼轉移到一個外部JS檔案中,然後使用“ addEventListener / attachEvent ”加入時間偵聽器。或者使用jquery等框架,之需要使用其“clock”方法。
- $('a#moreCornInfoLink').click(function() {
- alert('Want to learn more about corn?');
- });
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. 使用小寫的標記
理論上講,你可以像這樣隨性的書寫標記:
- <DIV>
- <P>Here's an interesting fact about corn. </P>
- </DIV>
最好不要這樣寫,費力氣輸入大些字母沒有任何用處,並且會讓程式碼很難看,這樣子就很好:
- <div>
- <p>Here's an interesting fact about corn. </p>
- </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列表佈局導航選單
通常網站都會有導航選單,你可以用這樣的方式定義:
- <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>
15. 學會怎樣對付IE
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]”。
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屬性:
- <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框架是為熟練開發者設計的,這樣會節省它們大量的時間。
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列表佈局導航選單
通常網站都會有導航選單,你可以用這樣的方式定義:
- <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>
15. 學會怎樣對付IE
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]”。
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屬性:
- <img src="cornImage.jpg" alt="帕蘭映像" title="帕蘭映像" />
20. 學會熬夜
我經常不知不覺的學習工作到凌晨,我認為這是個很好的狀況。
我的“啊~哈!”時間( “AH-HA” moments,指柳暗花明或豁然開朗的時刻)通常都發生在深夜,比如我徹底理解JavaScript的“閉包”概念,就是在這樣一種情況下。如果你還沒有感受過這種奇妙的時刻,那就馬上試試吧!
相關文章
- JAVA程式碼編寫的30條建議 .2013-01-03Java
- JAVA程式碼編寫的30條建議2004-10-20Java
- JAVA程式碼編寫的30條建議(轉)2007-08-09Java
- JAVA優質程式碼編寫的30條可行建議2013-10-25Java
- ASP.NET程式設計中的9條程式碼編寫規範2009-02-04ASP.NET程式設計
- Go Web 程式設計入門--編寫 Web 中介軟體2020-02-08GoWeb程式設計
- 編寫靈活、穩定、高質量的HTML程式碼的規範2018-04-18HTML
- 編寫好程式碼的10條戒律2011-07-15
- HTML編寫規範2018-11-27HTML
- 運維的 85 條軍規2013-06-22運維
- 運維的85 條軍規2013-06-22運維
- 寫好Java程式碼的30條經驗總結2014-12-15Java
- 58到家資料庫30條軍規解讀2017-09-25資料庫
- HTML、CSS程式碼書寫規範2021-09-09HTMLCSS
- html頁面head區域的編碼書寫規範2014-12-23HTML
- 遠離麵條程式碼:編寫可維護的 JS 程式碼2016-11-18JS
- 程式碼規範之前端編寫碼規範2020-10-20前端
- 編寫可閱讀的程式碼--基本規約2018-06-06
- Python 工匠:編寫條件分支程式碼的技巧2018-10-24Python
- html編碼規範2020-02-14HTML
- 成為程式設計高手的二十二條軍規2010-01-31程式設計
- 無痛 SQL Schema 的10 條軍規2015-09-01SQL
- Zen Coding 快速編寫HTML/CSS程式碼的實現2013-06-19HTMLCSS
- 編寫shell指令碼的規範2020-10-29指令碼
- scala入門之編寫scala指令碼2018-10-26指令碼
- 前端html編碼規範2018-02-07前端HTML
- HTML,CSS編碼規範2016-11-27HTMLCSS
- HTML Email的編寫2019-12-12HTMLAI
- PL/SQL 01 程式碼編寫規則2014-02-12SQL
- 運維85條軍規2014-07-25運維
- Zen Coding: 一種快速編寫HTML/CSS程式碼的方法2012-05-17HTMLCSS
- Oracle SQL效能優化的40條軍規2018-12-28OracleSQL優化
- 架構之重構的12條軍規2015-05-11架構
- 程式碼評審的18個軍規,收藏好!2023-05-04
- WEB前端編碼規範2019-02-15Web前端
- HTML編碼規範建議2019-02-16HTML
- HTML/CSS/JS編碼規範2017-08-24HTMLCSSJS
- 編寫程式碼的若干個基本規則(以Java為例)2013-11-06Java