28220 sujets

CSS et mise en forme, CSS3

Bonsoir,
J'ai découvert que le !important était pris en compte par IE quand
il sagissait de donner effet à une propriété répétée du selecteur parent.
Un exemple rendra les choses sans doute plus claires.


#actu p {margin-bottom:10px}
p.retrait {margin-left:10px; margin-bottom: 5px !important}


Dans un autre cas il donnait priorité à un class sur un ID qui est en principe toujours prioritaire donc le !important peut s'avérer être très utile.
Aprés il y a peut-être d'autres solutions plus solides permettant d'éviter le !important...
Modifié par herman31 (29 Jul 2005 - 01:03)
Bonjour herman31 Smiley cligne

Il y a un peu de confusion ici en ce qui concerne l'application de la valeur !important selon le navigateur.
Étant déclaré après celui-ci, le sélecteur class="retrait" a priorité sur l'id="actu", et ce peu importe le navigateur. Donc ton exemple aura le même rendu dans IE, Firefox ou autre navigateur moderne.

Puis, pour vérifier l'application de la valeur !important, il faut un exemple de ce genre :

p.retrait {margin-left: 10px !important; margin-left: 5px}

Ici, margin-left: 10px a priorité sur margin-left: 5px partout, sauf dans IE, qui ne prend pas en compte la valeur !important.

Voilà ! Smiley smile Convaincu maintenant ? Smiley lol
Modifié par Stephan (29 Jul 2005 - 02:14)
D'accord ton exemple (celle exploitant les différence entre IE et les autres browsers) est la première et seule utilisation que j'en faisais.
Merci quand même.
herman31 a écrit :
Bonsoir,
J'ai découvert que le !important était pris en compte par IE quand
il sagissait de donner effet à une propriété répétée du selecteur parent.


IE respecte en effet la valeur donnée par !important à une propriété, dans tous les cas sauf un : quand la même propriété est répétée avec et sans !important au sein du même bloc de règles, c'est à dire l'exemple donné par Stephan.