CSS – La propriété !important en CSS et ses extensions

Qu’est-ce que la balise !important ?

En CSS, une déclaration accompagnée de la mention !important devient prioritaire dans l’ordre d’exécution par rapport à une déclaration normale. Cette fonctionnalité donne ainsi au développeur le super-pouvoir de passer outre les poids et spécificités des sélecteurs pour imposer le sien. Parfois contestée, elle demeure fréquemment employée sur de très nombreux sites web, et plus particulièrement lorsque des frameworks CSS sont à l’oeuvre.

Les déclarations !important de l’utilisateur priment toujours sur celles de l’auteur . Cela permet notamment au développeur de surcharger les valeurs dynamiques de son style CSS. Les feuilles de style des user agents contiennent contiennent souvent des déclarations !important pour forcer une adaptation de design spécifique.

Voici un exemple concret :

Ici, la première règle dans la feuille de l’utilisateur contient une déclaration !important qui va surcharger la déclaration correspondant de la feuille de l’auteur. Il en ira de même pour la deuxième ligne. En revanche, pour ce qui est de la troisième règle, c’est la déclaration de l’auteur qui prendra la priorité sur celle de l’utilisateur puisque la propriété !important n’est pas utilisée.

D’autre part, si l’on s’intéresse uniquement à la feuille de style de l’auteur ou de l’utilisateur, la troisième règle passera après la deuxième car elle n’est pas suivie d’une mention !important.

Les nouvelles propriétés : !veryimportant et !notveryimportant ?

Sous la pression d’un Consortium issu des principaux frameworks tels que Bootstrap, Foundation et Angular, le W3C s’est penché en avril dernier sur la fonctionnalité !important et propose dorénavant deux innovations qui en étendent l’efficacité et qui vont se révéler bien pratiques : !veryimportant et !notveryimportant.

Ces nouveautés seront introduites dans les spécifications CSS4, l’idée étant d’implémenter un ordre de priorité à 3 vitesses :

!notveryimportant < !important < !veryimportant

Concrètement la gestion du poids des priorités CSS s’en trouvera facilitée à l’avenir :

Autre exemple :

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *