2011-11-16 43 views
8

首先,我看着html5rocks.com的來源。看起來像受信任的網站。他們在那裏關閉標籤。我應該使用/>還是不在HTML5中附上標籤?

<link rel="shortcut icon" href="/favicon.ico" /> 

然後我看着HTML5demos,並且他們不

<link rel="stylesheet" href="css/html5demos.css"> 
+0

你有什麼設置爲文檔類型? – user978122

+1

@ user978122'<!DOCTYPE html>'顯然,他使用的是HTML5。 –

+0

@Tim S. - >人們會希望。^_^ – user978122

回答

8

這完全是可選的。但是,如果你想用XML解析器處理HTML5文件,那麼我會傾向於包含它們。

+1

+1但好,如果你決定要使用它作爲一個(有效)的XML文檔,則需要滿足其他要求,以及。 – kapa

+2

是的,但如果你決定這樣做,它會讓你的生活更輕鬆。 – GordonM

+1

在某些怪異的情況下,jQuery將無法正常工作,當你有一個自閉的標籤,所以要小心。 –

3

它是在HTML5可選。您決定是否使用它,或不。

就我個人而言,我發現它包含/更具可讀性。

1

即使它是可選的,我寧願使用/,它使代碼在我的oppinion中更具可讀性。否則,我必須閱讀以確定是否存在實際標籤的結束標籤。

+0

虛空元素**不能**結束標籤,所以不需要搜索它們。 – xehpuk

5

你指什麼,就是所謂的HTML5規範Void Elements,並根據該規範,他們可能剛剛閉幕的性格>/字符或沒有。

見從HTML5 Specification部分8.1.2.1 Start tags,項6,它說:

然後,如果該元素是空元素之一,或如果元件是一個外來元素,則有可能是一個單U + 002F SOLIDUS字符(/)。這個字符對空元素沒有影響,但是在外部元素上,它將開始標記標記爲自閉。

1

Void Elements在HTML5中可以使用/>>關閉。然而,Foreign Elements(即來自MathML命名空間和SVG命名空間的元素)可以是自閉的,並且要求它們的開始標籤以/>完成。

由於HTML5規範並沒有提供關於哪種方式更好的指導,所以在決定關閉無效元素時,我們必須考慮其他方面,如\>>。這裏有以下幾個方面,我喜歡做這個決定的一個項目時要考慮:

  1. 可維護性

    我個人覺得它更容易發現錯誤,尤其是標籤配對錯誤,一般理解該文件,如果它使用/> Void Elements的標籤關閉。當還有外部元素時,這更是如此,因爲那些必須使用/>標籤關閉。

    我還發現了許多語法高亮規則集是兼容HTML5不是100%,並且可以使用/>標籤倒閉與不具有單獨的結束標記元素感到困惑。這種變化通過編輯器,當然,和許多IDE擁有更強大的語法高亮,其他更簡單的編輯器,讓你的經驗可能會有所不同,但如果編輯的可維護性和易用性是非常重要的,這是可以常常被忽視的一個因素。

  2. 頁面大小

    如果你有大量的空元素和頁面的性能爲您的應用至關重要,除去非所需的字符將有助於減少載荷大小爲您的網頁。這意味着您的響應可以使用較少數量的數據包發送,這意味着需要的數量更少,從而導致總體響應速度更快。

    然而,對於應用在那裏99%,還有很多其他東西花費你的時間和精力上的優化,將有比從虛空元素移除無關/字符在頁面加載時間具有更大的影響。

  3. 機讀

    沿着相同的路線語法高亮規則不是因爲他們需要的是靈活的,你可能會發現,同樣是爲HTML和/或XML處理庫真的,你可能想用來處理HTML頁面。您可能會發現更接近XML的語法得到了處理庫的更好支持,如果您希望其他開發人員處理您的HTML,那麼擁有最廣泛支持的語法將允許他們使用更多的工具。

結論
如果在一天結束時,你決定,你仍然需要的頁面尺寸的減小可以通過刪除多餘的/人物獲得,我認爲最好的路線走會是通過一個過濾器來傳遞所有的HTML,這個過濾器可以解析HTML並在HTML5規範允許的地方自動爲你移除字符。這具有的優勢,而不是犧牲了可維護性,同時仍然可以減少頁面大小。你甚至可以選擇不你的輸出通過這個過濾器,如果你知道請求旨在通過其他代碼,它可以讓你保持機器可讀性方面也進行解析。

缺點是,你有你的管道,這增加了複雜性和可能或不可能抵消任何頁面加載速度的增益你會得到一個額外的處理步驟。

最終,你應該測量你的頁面的速度和有效載荷大小,並結合你怎麼想上面列出的優先方面的測量,並呼籲您的具體項目。沒有One Size Fits All的答案,但正確的選擇是,可能是某種中間地帶。

相關問題