2013-02-15 50 views
10

我在我的頁面中使用了以下HTML5元素:標題,文章,部分和導航。 現在我已經設置上述所有HTML5元素顯示:塊,我包括HTML5希夫在頭一個條件語句:爲了支持HTML5元素,IE9也需要HTML5 shiv

<!--[if lt IE 9]> 
<script src="dist/html5shiv.js"></script> 
<![endif]--> 

該網站在IE7 &工作正常IE8 - 表明html5shiv是確實這樣做很神奇。 但是,當我在IE9中測試網站時,它缺少HTML5元素內所有內容的樣式。

只要我改變條件語句:

<!--[if IE]> 
<script src="dist/html5shiv.js"></script> 
<![endif]--> 

的HTML5元素和它的孩子們現在得到應用正確的樣式。我doublechecked我的IE版本,它說我有IE版本9.0.8112.16421。

我還應該提到這些網站是使用PHP構建的,並通過使用PEAR的Cache_Lite進行緩存。然而,在一個簡單的靜態html頁面上完成的測試對我來說也是一樣的。

任何想法??

+0

什麼是你的html文件的「doctype」?你使用'X-UA-COMPATIBLE'嗎?順便說一句。我認爲在第二個例子中,你的意思是HTML5所建議的'<! - [if lte IE 9]>' – 2013-02-15 11:55:51

+0

<!DOCTYPE html>。在head元素下面,我使用。感謝您注意到,我更新了我的問題 - 我使用[如果IE] – 2013-02-15 11:57:28

+0

,並且您確定不使用' 2013-02-15 11:59:42

回答

29

我終於弄清楚了什麼問題。 我在我的網站頂部註釋了doctype html標記之前的評論。這似乎破壞了IE9識別HTML5元素的能力。

這是我有:

<!-- Served From Cache: Wednesday 13th of February 2013 03:02:22 PM --> 
<!DOCTYPE html> 
<html> 
    <head> 

所以當時我能夠通過上下移動註釋的文檔類型下方,以解決這個問題。

+12

+ 1因爲回到這裏並讓社區知道。您可能也想將其標記爲正確的答案。作爲一般規則,在Doctype之前不應該有任何事情,因爲正如你所注意到的,奇怪的事情開始發生了! – 2013-02-15 17:06:40

0

試試這個代碼

<!--[if lt IE 9]> 
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> 
<![endif]--> 
+3

這對IE9問題有什麼幫助? – JJJ 2013-02-15 12:09:07

+1

googlecode.com/svn/trunk/html5可以幫助IE9 – 2013-02-15 12:10:45

+2

你讀過這個問題嗎?他已經在使用shiv了。 *「只要我將條件語句更改爲:... html5元素及其子元素現在可以應用正確的樣式。」* OP想知道爲什麼IE9不設計元素* IE9應該原生支持HTML5元素。無論如何,編寫'<! - [if lt IE 9]>'在IE9中不會做任何事情。 – JJJ 2013-02-15 12:14:00