457 votes

Que signifie !important en CSS ?

Qu'est-ce que !important en CSS ?

Est-il disponible dans CSS 2 ? CSS 3 ?

Où est-il soutenu ? Tous les navigateurs modernes ?

3 votes

23 votes

... à éviter autant que possible.

432voto

David Thomas Points 111253

Elle signifie essentiellement ce qu'elle dit, à savoir que "ceci est important, ignorer les règles ultérieures et les questions habituelles de spécificité s'appliquent". este règle !

En règle générale, une règle définie dans une feuille de style externe est remplacée par un style défini dans le fichier head du document, qui, à son tour, est annulé par un style en ligne à l'intérieur de l'élément lui-même (en supposant une spécificité égale des sélecteurs). La définition d'une règle à l'aide de la fonction !important Le terme "attribut" ( ?) ne tient pas compte des préoccupations normales concernant la règle "postérieure" qui l'emporte sur les règles "antérieures".

En outre, en règle générale, une règle plus spécifique l'emporte sur une règle moins spécifique. Ainsi :

a {
    /* css */
}

Est normalement annulé par :

body div #elementID ul li a {
    /* css */
}

Comme ce dernier sélecteur est plus spécifique (et l'endroit où se trouve le sélecteur plus spécifique n'a normalement pas d'importance (dans le fichier head ou la feuille de style externe), il encore remplacer le sélecteur moins spécifique (les attributs de style en ligne seront toujours remplacer le sélecteur spécifique "more-", ou "less-", car il est toujours plus spécifique.

Si, toutefois, vous ajoutez !important à la déclaration CSS du sélecteur moins spécifique, il sera prioritaire.

Utilisation !important a ses raisons d'être (bien que j'aie du mal à en trouver), mais c'est un peu comme utiliser une explosion nucléaire pour empêcher les renards de tuer vos poulets ; oui, les renards seront tués, mais les poulets le seront aussi. Et le voisinage.

Il fait également du débogage de votre CSS un cauchemar (d'après une expérience personnelle et empirique).

274 votes

Il est également source de confusion pour de nombreux développeurs, car dans de nombreux langages de programmation, le préfixe ! signifie pas .

19 votes

L'une des raisons d'être de !important serait dans un script de GreaseMonkey où vous remplacez délibérément le CSS d'autres personnes qui est probablement plus spécifique que le vôtre.

1 votes

Officiellement le W3 l'appelle une "règle".

140voto

NicoSantangelo Points 5445

La règle !important est un moyen d'appliquer votre CSS en cascade, mais aussi de faire en sorte que les règles que vous jugez les plus cruciales soient toujours appliquées. les règles que vous jugez les plus cruciales soient toujours appliquées. Une règle qui a la propriété la propriété !important sera toujours appliquée, quel que soit l'endroit où cette dans le document CSS.

Donc, si vous avez les éléments suivants :

.class {
   color: red !important;
}
.outerClass .class {
   color: blue;
}

la règle la plus importante sera celle qui s'appliquera (sans tenir compte des spécificité )

Je crois !important est apparu dans CSS1, de sorte que tous les navigateurs le supportent (IE4 à IE6 avec une implémentation partielle, IE7+ avec une implémentation complète)

C'est aussi quelque chose que vous ne voulez pas utiliser souvent, parce que si vous travaillez avec d'autres personnes, vous pouvez remplacer d'autres propriétés.

1 votes

IE4+, en fait, avec des bogues, jusqu'à 6 inclus.

18 votes

La confusion survient lorsque ! est un symbole pour NOT dans certaines langues, mais c'est plus clair maintenant.

2 votes

Je suis particulièrement heureux que vous ayez inclus la syntaxe pour l'utilisation de !important . CSS est suffisamment différent des autres langages pour qu'il soit facile d'oublier comment utiliser certaines choses.

25voto

Cyclone Points 1851

!important fait partie de CSS1.

Les navigateurs le supportent : IE5.5+, Firefox 1+, Safari 3+, Chrome 1+.

Cela signifie quelque chose comme :

Utilisez-moi, s'il n'y a rien d'autre d'important dans les environs !

On ne saurait mieux dire.

5 votes

!important n'est pas limité à Safari 3+ ; il l'a pris en charge dès le début, comme tous les autres navigateurs non IE. IE le comprend à partir de la version 4, mais ne le supporte sans bug qu'à partir de la version 7.

15voto

Fabian Barney Points 5707

Il est utilisé pour influencer le tri dans la cascade CSS lorsque le tri par origine est effectué. Cela n'a rien à voir avec la spécificité comme indiqué dans d'autres réponses.

Voici l'ordre de priorité, du plus faible au plus élevé :

  1. styles de navigateur
  2. les déclarations de feuilles de style de l'utilisateur (sans !important)
  3. déclarations de feuilles de style de l'auteur (sans !important)
  4. !important feuilles de style de l'auteur
  5. !important feuilles de style utilisateur

Après cette spécificité s'applique aux règles qui ont toujours un doigt dans l'engrenage.

Références :

0 votes

Comme l'a souligné @fabian-barney !important est un modificateur pour le ordre en cascade developer.mozilla.org/en-US/docs/Web/CSS/Cascade (voir le tableau pour référence).

8voto

Don Roby Points 24965

Il modifie les règles de priorité des cascades css. Voir la spécification CSS2 .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X