Ненавязчивая эмуляция псевдоклассов и селекторов атрибутов в IE - PullRequest
2 голосов
/ 04 мая 2010

Я пытаюсь эмулировать некоторые псевдоклассы и селекторы атрибутов в Internet Explorer 6 и 7, такие как :focus, :hover или [type=text].Пока что мне удалось добавить имя класса к затронутым элементам:

$("input, textarea, select")
.hover(function(){
    $(this).addClass("hover");
}, function(){
    $(this).removeClass("hover");
})
.focus(function(){
    $(this).addClass("focus");
})
.blur(function(){
    $(this).removeClass("focus");
});

$("input[type=text]").each(function(){
    $(this).addClass("text");
});

Однако я все еще вынужден дублировать селектор в моих таблицах стилей:

textarea:focus, textarea.focus{
}

И, что еще хуже, IE6, похоже, игнорирует все селекторы, когда находит атрибут:

input[type=text], input.text{
    /* IE6 ignores this */
}

И, конечно, IE6 игнорирует селекторы с несколькими классами:

input.text.focus{
    /* IE6 ignores this */
}

Так что я, скорее всего, закончу с этим беспорядком:

input[type=text]{
    /* Rules here */
}
input.text{
    /* Same rules again */
}
input[type=text]:focus{
}
input.text_and_focus{
}
input.text_and_hover{
}
input.text_and_focus_and_hover{
}

Мой вопрос: есть ли способ прочитать правила или вычисленный стиль, определенные для селектора CSS, и применить его копределенные элементы, поэтому мне нужно поддерживать только один набор стандартных CSS?

Ответы [ 2 ]

0 голосов
/ 05 мая 2010

Я нашел это прекрасное программное обеспечение:

  • ie-css3.js Эмуляция селектора псевдокласса CSS3 для Internet Explorer 5.5 - 8

Это в основном покрывает мои требования (ненавязчивый код, который не требует определенных правил CSS), хотя и не эмулирует input[type=text].

Если вы знаете о чем-то еще в этой строке, не стесняйтесь добавлять новый ответ.

0 голосов
/ 04 мая 2010

Если вы уже зависите от javascript с вашими стилями (в противном случае :focus или .focus не работают в IE6), я советую вам использовать IE7.js от Дина Эдвардса, который js-Improve ie6.

http://code.google.com/p/ie7-js/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...