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; }
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>
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
.
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.
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;
.
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.
Voici une solution jQuery simple.
$(document).ready(function() {
$('div').css('display','block');
})
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
ouinput
, plus Bat moins.
Vous voyez donc que l'inline !important
est la priorité la plus élevée.