Der Titel fasst es ziemlich gut zusammen.
Das externe Stylesheet enthält den folgenden Code:
td.EvenRow a {
display: none !important;
}
Ich habe versucht:
element.style.display = "inline";
und
element.style.display = "inline !important";
aber beides funktioniert nicht. Ist es möglich, einen! Wichtigen Stil mit Javascript zu überschreiben?
Dies ist für eine greasemonkey-Erweiterung, wenn dies einen Unterschied macht.
javascript
css
Enrico
quelle
quelle
Antworten:
Ich glaube, der einzige Weg, dies zu tun, besteht darin, den Stil als neue CSS-Deklaration mit dem Suffix '! Important' hinzuzufügen. Der einfachste Weg, dies zu tun, besteht darin, ein neues <style> -Element an den Kopf des Dokuments anzuhängen:
Die mit der obigen Methode hinzugefügten Regeln überschreiben (wenn Sie das Suffix! Important verwenden) andere zuvor festgelegte Stile. Wenn Sie das Suffix nicht verwenden, müssen Sie Konzepte wie " Spezifität " berücksichtigen.
quelle
Es gibt ein paar einfache Einzeiler, mit denen Sie dies tun können.
1) Legen Sie ein "style" -Attribut für das Element fest:
oder...
2) Ändern Sie die
cssText
Eigenschaft desstyle
Objekts:Entweder wird den Job machen.
===
Übrigens - wenn Sie ein nützliches Tool zum Bearbeiten von
!important
Regeln in Elementen benötigen, habe ich ein jQuery-Plugin namens "wichtig" geschrieben: http://github.com/premasagar/importantquelle
style
Tags.style
Attribut, nicht für ein Tag / Element.element.style.cssText += ';display:inline !important;';
element.style.setProperty
.element.style
hat einesetProperty
Methode, die die Priorität als dritten Parameter annehmen kann:Es war nicht in alten IEs arbeiten , aber es sollte in Ordnung in aktuellen Browsern sein.
quelle
boxShadow
Aufbauend auf der hervorragenden Antwort von @ Premasagar; Wenn Sie nicht alle anderen Inline-Stile entfernen möchten, verwenden Sie diese Option
Kann nicht verwendet werden,
removeProperty()
da!important
Regeln in Chrome nicht entfernt werden.Kann nicht verwendet werden,
element.style[property] = ''
da nur camelCase in FireFox akzeptiert wird.quelle
element.style.setProperty
.Bessere Methode, die ich gerade entdeckt habe: Versuchen Sie, mit Ihren Selektoren spezifischer als das Seiten-CSS zu sein. Ich musste das heute nur tun und es funktioniert wie ein Zauber! Weitere Informationen finden Sie auf der W3C-Website: http://www.w3.org/TR/CSS2/cascade.html#specificity
quelle
Wenn Sie einen einzelnen Stil im DOM-Element-Stilattribut aktualisieren / hinzufügen möchten, können Sie folgende Funktion verwenden:
style.cssText wird für alle gängigen Browser unterstützt .
Anwendungsfallbeispiel:
Hier ist ein Link zur Demo
quelle
Wenn Sie der Seite nur CSS hinzufügen, würde ich vorschlagen, dass Sie das Addon Stylish verwenden und anstelle eines Benutzerskripts einen Benutzerstil schreiben, da ein Benutzerstil effizienter und angemessener ist.
Auf dieser Seite finden Sie Informationen zum Erstellen eines Benutzerstils
quelle
https://developer.mozilla.org/en-US/docs/Web/CSS/initial
Verwenden Sie die Eigenschaft initial in css3
quelle
https://jsfiddle.net/xk6Ut/256/
Eine Möglichkeit, die CSS-Klasse in JavaScript zu überschreiben, besteht darin, eine ID für das Stilelement zu verwenden, damit wir die CSS-Klasse aktualisieren können
..
quelle
Anstatt Stil einzufügen, funktioniert es, wenn Sie eine Klasse (z. B. 'show') über ein Java-Skript einfügen. Aber hier brauchst du CSS wie unten. Die hinzugefügte CSS-Regel für Klassen sollte unter Ihrer ursprünglichen Regel liegen.
quelle
Dort haben wir eine weitere Möglichkeit, einen Eigenschaftswert aus dem CSS zu entfernen.
Wie bei der Ersetzungsmethode in js. Sie müssen jedoch die ID des Stils genau kennen, oder Sie können eine for-Schleife schreiben, um dies zu erkennen, indem Sie (Stile auf der Seite zählen und dann prüfen, ob einer dieser
!important
Werte einen Wert enthält oder mit ihm übereinstimmt) . & Sie können zählen auch - wie viel enthält sie, oder schreiben Sie einfach eine globale [regexp: / str / gi] Ersetzungsmethode)Meins ist sehr einfach, aber ich füge zum Beispiel einen jsBin hinzu:
https://jsbin.com/geqodeg/edit?html,css,js,output
Zuerst habe ich den
!important
Körperhintergrund in CSS für Gelb festgelegt , dann habe ich JS für darkPink überschrieben.quelle
Unten finden Sie einen Codeausschnitt zum Festlegen des wichtigen Parameters für das Stilattribut mithilfe von jquery.
Die Verwendung ist ziemlich einfach. Übergeben Sie einfach ein Objekt, das alle Attribute enthält, die Sie als wichtig festlegen möchten.
Es gibt zwei zusätzliche Optionen.
1.Um nur einen wichtigen Parameter zum bereits vorhandenen Stilattribut hinzuzufügen, übergeben Sie eine leere Zeichenfolge.
2.Um wichtige Parameter für alle vorhandenen Attribute hinzuzufügen, übergeben Sie nichts. Alle Attribute werden als wichtig festgelegt.
Hier ist es live in Aktion. http://codepen.io/agaase/pen/nkvjr
quelle