28173 sujets

CSS et mise en forme, CSS3

Bonjour,

J'ai un soucis avec les selecteurs de classes CSS...(Sous IE uniquement car fonctionne trés bien sous FF)

Ex :

.foo {
  position: absolute;
  top: 100px;
  left: 100px;
}

.foo .item.OK.enable {
   background-image: url(OK-enable.png);
}

.foo .item.Cancel.enable {
   background-image: url(Cancel-enable.png);
}

<ul class="foo">
  <li class="item OK enable">

  </li>
  <li class="item Cancel enable">

  </li>
</ul>


Mon soucis est que sous IE, il se plante et les 2 "LI" auront comme background-image Cancel-enable.png...

Auriez-vous une idée pour contourner ce bug d'IE ??

Merci Smiley cligne
Bonjour et bienvenue Smiley cligne
Il faut savoir que IE ne gère pas bien les selecteur de classe multiples et les traite différemment: il ne prendra en compte dans ce cas que le dernier sélecteurs

.foo .item.Cancel.enable
Dans ce cas sera selectionné tous les élément issus de .foo dont l'attribut class contient le mot enable
et comme tu as 2 fois enable de déclaré IE est alors dans un situation conflictuelle et respectera je suppose alors la règle css qui veut que ce soit la dernière declaration qui soit prise en compte.
Essayes donc de déclarer:

.foo .item.OK.enable {
   background-image: url(OK-enable.png) !important;
}

et vois si ça fonctionne mais je te garantis rien.
Ou sinon change le dernier nom de ta classe multiple.
Modifié par Hermann (08 Jun 2006 - 14:00)