我覺得一名Web前端應該好好理解Web標准到底是什么,為什么要在我們的實際實踐中遵循Web標准。
什么是Web標准。百度百科的解釋是:
WEB標准不是某一個標准,而是一系列標准的集合。網頁主要由三部分組成:結構(Structure)、表現(Presentation)和行為(Behavior)。對應的標准也分三方面:結構化標准語言主要包括XHTML和XML,表現標准語言主要包括CSS,行為標准主要包括對象模型(如W3C DOM)、ECMAScript等。
Web標准 。
其他網站也有很多解釋,這里不作過多贅述。我覺得我們遵循Web標准的目的不是為了標准而標准,不是因為它是這么要求的我們才去這么做。一名優秀的Web前端,應該是Write less,do more。就是用更少的代碼,做更多的事。所以我覺得我們遵循Web標准的目的應該是讓我們的代碼效率更高更好,只有本着這個態度去理解Web標准才能體會其深入的內涵。
下面具體談談Web標准。我在網上看到的一道yahoo的面試題。題目是:
有這么一段html代碼,請指出代碼中的毛病。
<P> 我寫的不是HTML代碼,是寂寞。<br><br> 我說:<br>不要迷戀哥,哥只是一個傳說
在這段代碼當中,第一眼看上去沒有明顯的語法錯誤。是的,在html 4.01 strict下是完全正確的,但是在Web標准下,就是xhtml 1.0 strict下就是錯誤的,不合乎規范。xhtml有嚴謹的結構,所有標簽必須關閉。如果是單獨不成對的標簽,在標簽最后加一個"/"來關閉它。所以,代碼中的<P>要匹配一個</p>,<br>要改成<br/>,其次所有標簽必須小寫,所以<P>也是錯誤的,要改成<p>;最后 空格符必須包含在容器當中,也是錯誤的。
考點1.html 4.01與Web標准xhtml 1.0的差別
起初,我以為如果能回答到上面所說的錯誤基本能拿滿分了,其實不然,回答完上面的只能及格。Web標准要求的結構與表現分離,而考題當中運用了 控制縮進,是錯誤的,我們應該應用Css來控制文本的縮進,所以 應該刪掉。
考點2.結構與表現分離
最后,還有一處錯誤,題目當中連續使用兩個<br>來制造了兩個段落,<br>是強制折行標簽,這樣做確實達到了兩個段落的效果,但是后期段間距不易控制,我們應該合理運用標簽。所以正確的做法是我們應該應用兩個<p>標簽來表示兩個段落。
考點3.合理運用標簽
所以,在xhtml標准下,正確的修改應該是:
<p>我寫的不是HTML代碼,是寂寞。</p><p>我說:<br/>不要迷戀哥,哥只是一個傳說</p>
這樣就完美了嗎?不是,還有加分點,為了更符合Web標准,我們應該適當的的運用標簽語義化(關於什么是標簽語義化,可移步:http://www.cnblogs.com/coco1s/p/3583082.html,我的上一篇博文,也是Web標准的一部分)。也就是“我"說的話,可以用<q>標簽標注。
<p>我寫的不是HTML代碼,是寂寞。</p><p>我說:<br/><q>不要迷戀哥,哥只是一個傳說</q></p>
這樣就足夠了,標簽語義化也應該合理的運用,過分使用也會顯得太畫蛇添足。當然,如果還要添加,“我”字可以用<cite>標注,“HTML”可以用<abbr>標注:
<p><cite>我</cite>寫的不是<abbr title=”Hyper Text Markup Language”>HTML</abbr>代碼,是寂寞。</p><p><cite>我</cite>說:<br/><q>不要迷戀哥,哥只是一個傳說</q></p>
加分點:標簽語義化
綜上,我們使用Web標准去編寫代碼,就像我前面說的,目的是write less,do more。我們的代碼更加規范,更加合乎標准,我們的頁面就更容易被搜索引擎抓取收錄。
上面沒有談到具體的Web標准包括什么以及具體的采用Web標准的好處,因為這些其他網站很多很多,具體了解可以移步:
本文到此結束,若有不正之處,萬望告知。