2008-11-23 10 views
23

hay alguna manera de hacer que IE6 comprenda las clases dobles, dicen que tengo una clase MenuButton con una clase de color y posiblemente una clase cliqueada; como:¿Usar clases dobles en IE6 CSS?

.LeftContent a.MenuButton {..general rules..} 
.LeftContent a.MenuButton.Orange {..sets background-image..} 
.LeftContent a.MenuButton.Clicked {...hum ta dum...} 

Ahora, IE6 entiende <a class="MenuButton Orange">, pero al añadir se hace clic, como <a class="MenuButton Orange Clicked">, es decir, justo hace caso omiso de la regla Seguido .

Por supuesto, yo podría volver a escribir mi CSS, y tienen sus propias reglas para .MenuButtonOrange
y tal (y probablemente habría tomado mucho tiempo más corto que hacer esta pregunta ;-),
pero caramba, sólo tan poco atractivo y Web 0.9 ...

¡Salud!

+0

¿Es la propiedad importante disponible en IE6 y en adelante? También puede ser una posible solución dependiendo de la situación. – artdias90

Respuesta

39

IE6 no admite múltiples selectores de clase. La razón por la que ve un cambio con la clase Orange es porque IE6 interpreta a.MenuButton.Orange como a.Orange.

Recomiendo la estructuración de su margen de beneficio de tal manera que se puede trabajar alrededor de este:

<div class="leftcontent"> 
    <ul class="navmenu"> 
    <li><a class="menubutton orange" href="#">One</a></li> 
    <li><a class="menubutton orange clicked" href="#">Two</a></li> 
    </ul> 
</div> 

Al agrupar por un ancestro más específica, puede crear variaciones con las clases de ámbito por ese antepasado (en este ejemplo navmenu) :

.leftcontent .navmenu a { /* ... basic styles ... */ } 
.leftcontent .navmenu a.orange { /* ... extra orange ... */ } 
.leftcontent .navmenu a.clicked { /* ... bold text ... */ } 

No es tan bueno como las clases múltiples, pero lo he usado para evitar la falta de soporte en IE.

+0

Si pudiera, triplicaría su respuesta :) Me salvó de saltar de un puente :) – bisko

+0

IE SUCKS. +1 por evitar que me vuelva loco – Nate

7

Si uso (como he escrito en la pregunta), reglas de etiqueta específica, como .LeftContent a.MenuButton.Orange, funciona ...

Sólo ellos se corresponda si las clases en el selector están en el mismo orden que las clases en el elemento.

Esto no es del todo cierto. IE6 (e IE7 en el modo Quirks) solo recuerda una clase por parte del selector. Si escribe dos, el segundo anula el primero. Entonces 'a.MenuButton.Orange' es idéntico en efecto a 'a.Orange'.

Por lo tanto, hay que evitar los selectores de clases múltiples por ahora.

+0

+1. Esto es lo que había escrito originalmente, pero los internets tenían otras cosas que decir y tontamente lo creí sin probarlo. He revertido mis ediciones y agaché la cabeza avergonzado. – Borgar

+0

jajaja, no te pases de la vergüenza, es solo TANTO :-) – bobince