毛片不卡永久免费无码,国精品片在线视频,桃色国产精品站一桃色阁,亚洲黄色av成人在线观看,91总久久久国产精品,有奶水哺乳期无码AVAV,一区二区视频国产电影在线,日韩欧洲无码精品直播久久

知識(shí)分享

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

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

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

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

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

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>

好了,看到這幾段代碼,恐怕有人會(huì)說“不對(duì)不對(duì)不對(duì)。其中只有一個(gè)是對(duì)的,另外三個(gè)——說不好?!辈粚?duì),應(yīng)該給屬性值加引號(hào)!拜托,我們可是一直都給屬性值加引號(hào)的!元素名大寫對(duì)嗎?這種做法10年不是就被拋棄了嗎?

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

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

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

有人可能會(huì)說“這樣不行。我覺得語(yǔ)言本身應(yīng)該提供一種開關(guān),讓作者能夠表明自己想做什么?!北热缯f,想使用某種特定的語(yǔ)法,像XHTML,而不是使 用其他語(yǔ)法。我理解這些人的想法。但我不贊成在語(yǔ)言里設(shè)置開關(guān)。因?yàn)槲覀冇懻摰闹皇蔷幋a風(fēng)格或者寫作風(fēng)格,跟哪種語(yǔ)法正確無關(guān)。對(duì)于像我們這樣的專業(yè)人 士,我認(rèn)為可以使用lint工具(一種軟件質(zhì)量保證工具,或者說是一種更加嚴(yán)格的編譯器。它不僅可以象普通編譯器那樣檢查出一般的語(yǔ)法錯(cuò)誤,還可以檢查出 那些雖然完全合乎語(yǔ)法要求,但很可能是潛在的、不易發(fā)現(xiàn)的錯(cuò)誤),對(duì)其他技術(shù)我們不是也在使用lint工具嘛。

比如說對(duì)JavaScript使用lint工具。JavaScript同樣也是比較混亂、不嚴(yán)謹(jǐn)?shù)睦?,但它非常?qiáng)大,原因恰恰是它混亂、不嚴(yán)謹(jǐn), 而且有很多不同的編碼方式。在JavaScript,你可以在每條語(yǔ)句末尾加上分號(hào),但不是必需的,因?yàn)镴avaScript會(huì)自動(dòng)插入分號(hào)……是不是聽 起來有點(diǎn)不好接受?

正因?yàn)槿绱?,才有了像JSlint這樣的工具,在道格拉斯·克勞克福德(Douglas Crockford)的網(wǎng)站jslint.org上面。有個(gè)網(wǎng)頁(yè)上寫著“JSlint可能會(huì)傷害你的感情?!钡@確實(shí)是個(gè)非常棒的工具,它可以把 JavaScript代碼變得完美無瑕。如果你通過JSlint運(yùn)行JavaScript,它會(huì)告訴你“好,你的JavaScript代碼有效,但寫法不 妥。你這種編碼風(fēng)格啊,我不喜歡。不贊成你這樣寫。這樣寫不好?!碧貏e是對(duì)團(tuán)隊(duì),對(duì)于要使用統(tǒng)一的編碼風(fēng)格的團(tuán)隊(duì),JSlint是非常方便的工具。

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

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

歡迎留言、轉(zhuǎn)載、分享…轉(zhuǎn)載本文章請(qǐng)關(guān)注!網(wǎng)站建設(shè)選擇北京瑩晨設(shè)計(jì)prodigallitmag.com

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