国内精品视频一区二区三区_欧美人与牲口杂交在线播放_亚洲精品国男人在线视频_成人夜色视频网站在线观看_国产内射一区亚洲

知識分享

HTML5支持那些已有的內(nèi)容

發(fā)表日期:2015/7/31 14:36:10 文章編輯: 瀏覽次數(shù):2563

HTML5支持那些已有的內(nèi)容。這一點非常重要,因為很多人都認為HTML5很新,很閃亮;它應該代表著未來發(fā)展的方向,應該把Web推向一個新的發(fā)展階段。這就 是HTML5,對嗎?顯然,我們都會考慮讓Web的未來發(fā)展得更好,但他們則必須考慮過去。別忘了W3C這個工作組中有很多人代表的是瀏覽器廠商,他們肯 定是要考慮支持已有內(nèi)容的。只要你想構建一款瀏覽器,就必須記住這個原則:必須支持已有的內(nèi)容。

下面我們就來看一個HTML5支持已有內(nèi)容的例子。

這個例子展示了編寫同樣內(nèi)容的四種不同方式。上面是一個img元素,下面是帶一個屬性的段落元素。四種寫法唯一的不同點就是語法。把其中任何一段代 碼交給瀏覽器,瀏覽器都會生成相同的DOM樹,沒有任何問題。從瀏覽器的角度看,這四種寫法沒有區(qū)別。因而在HTML5中,你可以隨意使用下列任何語法。

view sourceprint?

01<img src="foo" alt="bar" />
02<p class="foo">Hello worldp>
03
04<img src="foo" alt="bar">
05<p class="foo">Hello world
06
07<IMG SRC="foo" ALT="bar">
08<P CLASS="foo">Hello worldP>
09
10<img src=foo alt=bar>
11<p class=foo>Hello worldp>

好了,看到這幾段代碼,恐怕有人會說“不對不對不對。其中只有一個是對的,另外三個——說不好?!辈粚Γ瑧摻o屬性值加引號!拜托,我們可是一直都給屬性值加引號的!元素名大寫對嗎?這種做法10年不是就被拋棄了嗎?

看到HTML5同時允許這些寫法,我心里忍不住一陣陣想吐。我寫了10年的XHTML 1.0,已經(jīng)非常適應嚴格的語法了。但你必須明白,站在瀏覽器的角度上,這些寫法實際上都是一樣的。確實沒有什么問題。

還有誰也感到不舒服了嗎?有誰看到這些之后想“噢,這不是亂寫嘛,這樣做不對”?只有我這樣想嗎?還有別人嗎?

但是,HTML5必須支持已經(jīng)存在的內(nèi)容,而已有的內(nèi)容就是這個樣子的。不是嗎?根據(jù)伯斯塔爾法則,瀏覽器沒有別的選擇。

有人可能會說“這樣不行。我覺得語言本身應該提供一種開關,讓作者能夠表明自己想做什么。”比如說,想使用某種特定的語法,像XHTML,而不是使 用其他語法。我理解這些人的想法。但我不贊成在語言里設置開關。因為我們討論的只是編碼風格或者寫作風格,跟哪種語法正確無關。對于像我們這樣的專業(yè)人 士,我認為可以使用lint工具(一種軟件質量保證工具,或者說是一種更加嚴格的編譯器。它不僅可以象普通編譯器那樣檢查出一般的語法錯誤,還可以檢查出 那些雖然完全合乎語法要求,但很可能是潛在的、不易發(fā)現(xiàn)的錯誤),對其他技術我們不是也在使用lint工具嘛。

比如說對JavaScript使用lint工具。JavaScript同樣也是比較混亂、不嚴謹?shù)睦?,但它非常強大,原因恰恰是它混亂、不嚴謹, 而且有很多不同的編碼方式。在JavaScript,你可以在每條語句末尾加上分號,但不是必需的,因為JavaScript會自動插入分號……是不是聽 起來有點不好接受?

正因為如此,才有了像JSlint這樣的工具,在道格拉斯·克勞克福德(Douglas Crockford)的網(wǎng)站jslint.org上面。有個網(wǎng)頁上寫著“JSlint可能會傷害你的感情。”但這確實是個非常棒的工具,它可以把 JavaScript代碼變得完美無瑕。如果你通過JSlint運行JavaScript,它會告訴你“好,你的JavaScript代碼有效,但寫法不 妥。你這種編碼風格啊,我不喜歡。不贊成你這樣寫。這樣寫不好。”特別是對團隊,對于要使用統(tǒng)一的編碼風格的團隊,JSlint是非常方便的工具。

我個人認為,不僅對團隊來說,就算是你自己寫代碼,也要堅持一種語法風格。從瀏覽器解析的角度講,不存在哪種語法比另一種更好的問題,但我認為,作 為專業(yè)人士,我們必須能夠自信地講“這就是我的編碼風格。”然而,我不認為語言里應該內(nèi)置這種開關。你可以使用lint工具來統(tǒng)一編碼風格?,F(xiàn)在就來說說 lint工具。大家可以登錄htmllint.com,在其中運行你的HTML5文檔,它會幫你檢查屬性值是否加了引號,元素是否小寫,你還可以通過勾選 復選框來設置其他檢查項。

但這不意味著拒絕粗心大意的標記,做不做清理完全取決于你自己。我說過,因為瀏覽器必須支持已有的內(nèi)容,HTML5自然也不能例外。歸根結底還是伯斯塔爾法則。

歡迎留言、轉載、分享…轉載本文章請關注!網(wǎng)站建設選擇北京瑩晨設計m.ww520ww.com

將文章分享到..
相關新聞
全新新聞
隨機新聞
最新網(wǎng)站設計案例
Hi,我來幫您!