我寫HTML和CSS在一箇舊的Web應用程序。如果我將其更改爲HTML5的doctype,菜單無法正常工作是使用下面的文檔類型CSS選擇器,IE瀏覽器和HTML文檔類型
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
。我的問題是,我不能使用一些css選擇器,如
input[type="radio"]
例如。但是,這顯然適用於html5文檔類型。任何可能的解決方案?謝謝!
我寫HTML和CSS在一箇舊的Web應用程序。如果我將其更改爲HTML5的doctype,菜單無法正常工作是使用下面的文檔類型CSS選擇器,IE瀏覽器和HTML文檔類型
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
。我的問題是,我不能使用一些css選擇器,如
input[type="radio"]
例如。但是,這顯然適用於html5文檔類型。任何可能的解決方案?謝謝!
您提到的文檔類型(HTML 4.0 Transitional without URL)會觸發怪癖模式。這會導致Internet Explorer的呈現與IE5類似。您的網站在怪癖模式下運行良好,可能是因爲它針對IE的這種舊版本進行了優化:例如,它可能會採用邊框框模型。自然,你不能使用更復雜的CSS選擇器,因爲IE5不支持它們。解決方案是重寫標準模式渲染的代碼。通常的做法是在符合標準的瀏覽器(如Firefox,Chrome或IE9)中使用HTML5 doctype開發應用程序,然後嘗試修復舊版Internet Explorer中可能出現的錯誤。
我已經只包括這個JavaScript庫(它需要的jQuery或其他一些圖書館工作)解決了我的很多問題,選擇與以前的IE版本:
這一點,實在值得一試。
selectivizr是一個JavaScript實用程序,它模擬Internet Explorer 6-8中的CSS3僞類 和屬性選擇器。
它似乎並不模仿CSS2屬性選擇器。 – BoltClock
這裏有一個非常類似的問題:http://stackoverflow.com/questions/7801470/ie-support-for-attribute-selectors-with-html5-doctype您測試的是什麼版本的IE? 7,8,9?他們都應該用文檔類型識別屬性選擇器。 – BoltClock
@BoltClock對不起,忘了提及即時測試ie7和8 – Johan
我認爲在這種情況下,問題是頁面運行在怪癖模式作爲默認由於某種原因 – Johan