css-селекторы, IE и HTML-типы документов - PullRequest
0 голосов
/ 17 ноября 2011

Я пишу HTML и CSS в старом веб-приложении, которое использует следующий тип документа

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

Если я изменю его на html5 doctype, меню не будет работать. Моя проблема в том, что я не могу использовать некоторые селекторы CSS, такие как

input[type="radio"]

например. Но это, очевидно, работает с доктайпом html5. Любые возможные решения для этого? Спасибо!

Ответы [ 2 ]

2 голосов
/ 17 ноября 2011

Упомянутый вами тип документа (HTML 4.0 Transitional без URL) запускает режим причуд. Это приводит к тому, что рендеринг Internet Explorer похож на IE5. Ваш сайт работает нормально в режиме причуд, вероятно, потому что он оптимизирован для таких старых версий IE: например, он может принять рамочную модель рамки. Естественно, вы не можете использовать более сложные CSS-селекторы, потому что IE5 не поддерживает их. Решение состоит в том, чтобы переписать код для стандартного режима рендеринга. Обычный подход состоит в том, чтобы разработать приложение с типом HTML5 в совместимых со стандартами браузерах, таких как Firefox, Chrome или IE9, а затем попытаться исправить ошибки, которые могут появляться в более старых версиях Internet Explorer.

0 голосов
/ 17 ноября 2011

Я решил многие из моих проблем с селекторами и предыдущей версией IE, просто включив эту библиотеку javascript (для работы требуется jQuery или некоторая другая библиотека):

http://selectivizr.com

Это стоит того.

selectivizr - это утилита JavaScript, которая эмулирует псевдоклассы CSS3 и селекторы атрибутов в Internet Explorer 6-8.

...