2010-03-29 5 views
1

Я использую селектор .class1.class2 .class3, где .class1.class - это селектор комбинации, а .class3 принадлежит потомку. отлично работает в FF, но на IE7 он не работает. В css ниже, второй стиль всегда отображается в IE. любое решение?css selector on IE

 
<STYLE type="text/css"> 
.test1.test2 .test3{ 
    width:90px; 
    height:100px; 
} 
.test4.test2 .test3{ 
    width:900px; 
    height:100px; 
} 
</style> 


<div class="test1 test2"> 
    <button value="test" class="test3"/> 
</div> 
+0

Вы можете сделать селектор '.test1 .test3' или' .test2 .test3', если вам не нужно исключать эту комбинацию, можете ли вы переупорядочить туда, где работает один из родителей, или он должен быть сочетание? –

+0

это должна быть комбинация – user121196

ответ

1

Этот стиль должен отлично работать на IE7 +. Как сказал Пекка в комментариях, есть small problem with IE6. Я предполагаю, что вы не используете строгий doctype, возможно?
В этом случае, вы заслуживаете все, что вы получите: -o

Просто добавьте <!doctype html> в начале HTML-файла и все должно быть хорошо.

+0

Кажется, что все, кроме Ник, неправильно поняли вопрос, css в вопросе .test1.test2 .test3 – user121196

+0

добавление работает. Но я уже использую IE7, а не IE6 – user121196

+0

Извините, если я не был чист - строгий doctype должен заставить его работать в IE7. Не уверен, что вы имеете в виду в своем первом комментарии; Я знаю, что такое CSS. Проблема IE заключается в использовании двух классов на одном элементе, то есть на '.test1.test2' часть – DisgruntledGoat

0

Использование Conditional Comments, этот вопрос был поднят слишком много раз, вот пример:

<!--[if lte IE 9> 
<style type="text/css"> 
.test1,.test2,.test3{ 
    width:90px; 
    height:100px; 
} 
.test4,.test2,.test3{ 
    width:900px; 
    height:100px; 
} 
</style> 

<![endif]--> 

Это означает, что все семьи IE браузер меньше, чем версия 9 собираетесь читать в этом стиле, или вы может использовать стиль с # для чтения IE следующим образом:

<STYLE type="text/css"> 
.test1,.test2,.test3{ 
    #width:90px; 
    #height:100px; 
} 
.test4,.test2,.test3{ 
    #width:900px; 
    #height:100px; 
} 
</style> 
+0

Но почему? Я до сих пор не понимаю, почему IE в первую очередь ошибается. –

+0

Но приведенный вами пример не является комбинацией, у меня есть .test1.test2 как комбинация, а .test3 принадлежит потомку. – user121196

4

только для дайте вам знать, что вы используете, называется Несколько классов метод! IE7 нужно использовать эту форму:

div.class1.class2 div.class3 {} 

IE6 не suppurt это вы можете взломать его, прочитать решение

http://www.quirksmode.org/css/multipleclasses.html

надежда, что это поможет!