2011-01-27 15 views
1

有此quote從微軟:在HTML中,無法識別標籤的內容會發生什麼?

<![if lt IE 8]> 
<p>Please upgrade to Internet Explorer version 8.</p> 
<![endif]> 

當這種類型的評論的比較 基本HTML註釋,注意 沒有連字符(「 - 」) 立即開通後「 「 評論區塊;因此, 評論分隔符被視爲 無法識別的HTML。由於瀏覽器 不能識別 底層顯示條件 評論,因此它不會執行任何操作。

而且還有常用的HTML5-Video Fallback解決方案。

<video ...> 
    <!-- If the browser doesn't understand the <video> element, reference a Flash file.--> 
    <embed ...></embed> 
</video> 
  • 所以發生witht他的認可標籤的內容是什麼?

  • 這是標準化不知何故,或只是由瀏覽器如何實現?

回答

0

它在HTML5標準化。

有兩種不同的情況。對於<![if lt IE 8]>,這在非IE瀏覽器中作爲「假評論」進行處理,並導致將註釋節點添加到DOM。有關IE的功能,請參閱Axel Fontaine的答案。

對於<video ...>除IE(版本8或更早版本)以外的瀏覽器將在DOM中創建一個名爲「video」的元素,它的內容將是「video」元素的子元素。 IE,如果使用HTML5 shiv,會做同樣的事情。

對於IE9之前的IE9,如果沒有HTML5 shiv,<video ...>標記會導致一個名爲「VIDEO」的元素將被創建。它將是空的。嵌入和其他內容將是它的兄弟姐妹。然後,</video>標記將導致將另一個元素添加到DOM,名爲「/ VIDEO」

作爲一個問題,<embed>元素是無效的,因此</embed>永遠不會正確。添加它會導致在IE9之前的IE版本中將名爲「/ EMBED」的元素添加到DOM中。

1

這只是一個IE瀏覽器。其他瀏覽器將識別<![if lt IE 8]>,另一個作爲標籤,因此忽略它們。他們不會忽略它們之間的內容,所以除IE 8之外的所有瀏覽器都會顯示該段落,所以我建議不要使用這種格式。相反,努力讓你的頁面優雅地退化。

+0

你是對的。對不起,我只是錯誤地解釋了文字,錯過了理解這個概念。這個語法的全部要點是如果標籤沒有被識別和隱藏,就要顯示它。 – 2011-01-27 19:55:22

1

瀏覽器忽略標籤他們不明白

<![if lt IE 8]> 

IE條件註釋。它只能被IE識別,並且允許您只有某些IE版本才能看到部分頁面。

在這種情況下,只能通過IE瀏覽器版本低於解釋8(IE6,IE7,......,但不是IE8,IE9,...)

+0

正確。我錯過了理解這個概念,只是解釋爲「什麼也不做」是錯誤的。 – 2011-01-27 19:56:00

相關問題