2011-11-17 46 views
0

我寫HTML和CSS在一箇舊的Web應用程序。如果我將其更改爲HTML5的doctype,菜單無法正常工作是使用下面的文檔類型CSS選擇器,IE瀏覽器和HTML文檔類型

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > 

。我的問題是,我不能使用一些css選擇器,如

input[type="radio"] 

例如。但是,這顯然適用於html5文檔類型。任何可能的解決方案?謝謝!

+0

這裏有一個非常類似的問題:http://stackoverflow.com/questions/7801470/ie-support-for-attribute-selectors-with-html5-doctype您測試的是什麼版本的IE? 7,8,9?他們都應該用文檔類型識別屬性選擇器。 – BoltClock

+0

@BoltClock對不起,忘了提及即時測試ie7和8 – Johan

+0

我認爲在這種情況下,問題是頁面運行在怪癖模式作爲默認由於某種原因 – Johan

回答

2

您提到的文檔類型(HTML 4.0 Transitional without URL)會觸發怪癖模式。這會導致Internet Explorer的呈現與IE5類似。您的網站在怪癖模式下運行良好,可能是因爲它針對IE的這種舊版本進行了優化:例如,它可能會採用邊框框模型。自然,你不能使用更復雜的CSS選擇器,因爲IE5不支持它們。解決方案是重寫標準模式渲染的代碼。通常的做法是在符合標準的瀏覽器(如Firefox,Chrome或IE9)中使用HTML5 doctype開發應用程序,然後嘗試修復舊版Internet Explorer中可能出現的錯誤。

+0

該OP說它最初是在幾乎標準模式下渲染的,支持高級選擇器,但不再支持HTML5文檔類型。除此之外,HTML5文檔類型已經創建**,以便** IE不會以怪癖模式渲染**。 – BoltClock

+0

@BoltClock我看不到你的觀點。如果應用程序適用於不帶URL的HTML 4.0 Transitional文檔類型,則它絕對針對怪癖模式進行了優化,並且必須對其進行更改。我看不到OP在說「它最初是在標準模式下渲染」。 – duri

+0

哦,我現在明白了,我完全錯過了它沒有指向一個URL。 – BoltClock

0

我已經只包括這個JavaScript庫(它需要的jQuery或其他一些圖書館工作)解決了我的很多問題,選擇與以前的IE版本:

http://selectivizr.com

這一點,實在值得一試。

selectivizr是一個JavaScript實用程序,它模擬Internet Explorer 6-8中的CSS3僞類 和屬性選擇器。

+0

它似乎並不模仿CSS2屬性選擇器。 – BoltClock