Puis-je remplacer inline!- il important?

Si vous avez

<div style="display: none !important;"></div>

Existe-t-il un moyen de remplacer cela dans la feuille de style pour le rendre affiché?

De préférence en utilisant quelque chose de similaire à ceci:

div { display: block !important; }
52
demandé sur TylerH 2012-06-22 09:36:25

6 réponses

Permettez-moi de commencer par dire que généralement les styles en ligne peuvent être remplacés :

.override {color:red !important;}​

<p style="color:blue;">I will be blue</p>
<p style="color:blue;" class="override">But I will be red</p>

Trafiqué

Ce comportement est décrit dans les spécifications W3 , où il est indiqué que les déclarations !important n'altèrent pas la spécificité, mais que les déclarationspriment sur les déclarations "normales".

Cela étant dit, lorsque des règles contradictoires ont toutes deux le drapeau !important, la spécificité dicte qu'une règle en ligne est appliquée-ce qui signifie que pour le scénario D'OP, il n'y a aucun moyen de remplacer un en ligne !important.

70
répondu o.v. 2012-06-22 07:27:58

Vous ne pouvez pas remplacer le CSS en ligne s'il a !important. Il a une priorité plus élevée que le style dans votre fichier CSS externe.

Cependant, si vous voulez changer quelques actions plus tard, vous pouvez utiliser un peu de JavaScript.

19
répondu Shakti Singh 2015-04-20 15:44:40

Vous ne pouvez pas remplacer le style en ligne ayant !important. La première préférence est le style en ligne.

, Par exemple: nous avons une classe

.styleT{float:left;padding-left:4px;width:90px;}

Et dans jsp

<div class="styleT" id="inputT" style="padding-left:0px;">

Ici ne prend pas le padding-left:4px;. Il prend la classe styleT sauf le padding-left: 4px;. Il y aura padding-left:0px;.

5
répondu ıllıllı lק ıllıllı 2012-06-22 09:19:01

Vous ne pouvez pas remplacer le CSS en ligne ayant !important, car il a une priorité plus élevée, mais, en utilisant JavaScript, vous pouvez obtenir ce que vous voulez.

5
répondu Ahsan Rathod 2015-04-20 15:43:41

Voici une solution jQuery simple.

$(document).ready(function() { 
$('div').css('display','block');
})
1
répondu sameeuor 2016-02-10 07:40:47

Règles de priorité lorsque deux propriétés CSS s'appliquent au même nœud:

  • !important bat pas - !important. Si tout aussi !important, ...

  • style attribut bat css dans un fichier. Si les deux sont dans des fichiers css...

  • Un ID dans le sélecteur CSS Bat aucun ID. Et plus D'identifiants battent moins. (et vous pensiez qu'il n'y avait aucune raison pour deux identifiants dans un sélecteur.) Si le même ID comte...

  • Les Classes et les attributs comme [name] dans le sélecteur, les compter; plus beats moins. Si tous ceux-ci sont les mêmes...

  • Les noms de balise comme span ou input, plus Bat moins.

Vous voyez donc que l'inline !important est la priorité la plus élevée.

0
répondu OsamaBinLogin 2018-09-24 00:02:27