HTML5支持那些已有的內(nèi)容
發(fā)表日期:2015/7/31 14:36:10 文章編輯: 瀏覽次數(shù):2822
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)就是語法。把其中任何一段代 碼交給瀏覽器,瀏覽器都會(huì)生成相同的DOM樹,沒有任何問題。從瀏覽器的角度看,這四種寫法沒有區(qū)別。因而在HTML5中,你可以隨意使用下列任何語法。
01 | < img src = "foo" alt = "bar" /> |
02 | < p class = "foo" >Hello world |
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 world |
09 |
10 | < img src = foo alt = bar > |
11 | < p class = foo >Hello world |
好了,看到這幾段代碼,恐怕有人會(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)格的語法了。但你必須明白,站在瀏覽器的角度上,這些寫法實(shí)際上都是一樣的。確實(shí)沒有什么問題。
還有誰也感到不舒服了嗎?有誰看到這些之后想“噢,這不是亂寫嘛,這樣做不對(duì)”?只有我這樣想嗎?還有別人嗎?
但是,HTML5必須支持已經(jīng)存在的內(nèi)容,而已有的內(nèi)容就是這個(gè)樣子的。不是嗎?根據(jù)伯斯塔爾法則,瀏覽器沒有別的選擇。
有人可能會(huì)說“這樣不行。我覺得語言本身應(yīng)該提供一種開關(guān),讓作者能夠表明自己想做什么。”比如說,想使用某種特定的語法,像XHTML,而不是使 用其他語法。我理解這些人的想法。但我不贊成在語言里設(shè)置開關(guān)。因?yàn)槲覀冇懻摰闹皇蔷幋a風(fēng)格或者寫作風(fēng)格,跟哪種語法正確無關(guān)。對(duì)于像我們這樣的專業(yè)人 士,我認(rèn)為可以使用lint工具(一種軟件質(zhì)量保證工具,或者說是一種更加嚴(yán)格的編譯器。它不僅可以象普通編譯器那樣檢查出一般的語法錯(cuò)誤,還可以檢查出 那些雖然完全合乎語法要求,但很可能是潛在的、不易發(fā)現(xiàn)的錯(cuò)誤),對(duì)其他技術(shù)我們不是也在使用lint工具嘛。
比如說對(duì)JavaScript使用lint工具。JavaScript同樣也是比較混亂、不嚴(yán)謹(jǐn)?shù)睦?,但它非常?qiáng)大,原因恰恰是它混亂、不嚴(yán)謹(jǐn), 而且有很多不同的編碼方式。在JavaScript,你可以在每條語句末尾加上分號(hào),但不是必需的,因?yàn)镴avaScript會(huì)自動(dòng)插入分號(hào)……是不是聽 起來有點(diǎn)不好接受?
正因?yàn)槿绱?,才有了像JSlint這樣的工具,在道格拉斯·克勞克福德(Douglas Crockford)的網(wǎng)站jslint.org上面。有個(gè)網(wǎng)頁上寫著“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)持一種語法風(fēng)格。從瀏覽器解析的角度講,不存在哪種語法比另一種更好的問題,但我認(rèn)為,作 為專業(yè)人士,我們必須能夠自信地講“這就是我的編碼風(fēng)格?!比欢?,我不認(rèn)為語言里應(yīng)該內(nèi)置這種開關(guān)。你可以使用lint工具來統(tǒng)一編碼風(fēng)格。現(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ì)m.luyingji.cn
-
男女程序員的對(duì)比,那個(gè)更適合這個(gè)行業(yè).
日期:2016-02-24 瀏覽次數(shù):3218
-
網(wǎng)站布局之價(jià)格表單設(shè)計(jì)靈感來源。
日期:2015-12-14 瀏覽次數(shù):3173
-
JS判斷移動(dòng)設(shè)備并實(shí)現(xiàn)跳轉(zhuǎn)至手機(jī)版網(wǎng)頁
日期:2015-12-14 瀏覽次數(shù):3318
-
HTML5的設(shè)計(jì)原理之求真務(wù)實(shí)。
日期:2015-07-31 瀏覽次數(shù):2783
-
HTML5的設(shè)計(jì)特性!
日期:2015-07-31 瀏覽次數(shù):2721
-
免費(fèi)SSL證書申請(qǐng)網(wǎng)站topssl.cn上線
日期:2024-09-23 瀏覽次數(shù):1890
-
如何在北京順義尋找一個(gè)踏實(shí)的網(wǎng)站建設(shè)公司
日期:2023-08-10 瀏覽次數(shù):4951
-
順義網(wǎng)站建設(shè):北京順義網(wǎng)站建設(shè)的優(yōu)點(diǎn)
日期:2023-05-25 瀏覽次數(shù):5332
-
選擇網(wǎng)站公司需要考慮哪些因素
日期:2023-05-25 瀏覽次數(shù):4177
-
北京模板建站
日期:2023-03-28 瀏覽次數(shù):4388
-
網(wǎng)頁設(shè)計(jì)的CSS3圓角效果
日期:2020-09-11 瀏覽次數(shù):2480
-
創(chuàng)建完美元描述的5個(gè)步驟
日期:2019-04-18 瀏覽次數(shù):2608
-
css應(yīng)用歸納
日期:2016-02-21 瀏覽次數(shù):3259
-
網(wǎng)頁設(shè)計(jì)中留白的幾個(gè)注意事項(xiàng)
日期:2018-11-13 瀏覽次數(shù):2883
-
網(wǎng)站設(shè)計(jì)中的幾個(gè)關(guān)鍵概念
日期:2019-01-25 瀏覽次數(shù):2874