javascript - CSS: Wie entfernt man Pseudoelemente (after, before, ...)?
Ich möchte einen Schalter für das Layout von Absatz-Tags auf einer Webseite verwenden.
Ich verwende das ::after-Pseudoelement:
p:after {content: url("../img/paragraph.gif");}
Jetzt muss ich diesen CSS-Code von der Seite entfernen.
Wie kann dies einfach gemacht werden?
Ich möchte hinzufügen, dass:
jQuery wird bereits auf der Seite verwendet
und ich möchte keine Dateien enthalten oder entfernen, die CSS enthalten.
Antwort #1
p:after {
content: none;
}
none ist der offizielle Wert, um den Inhalt auf nichts zu setzen, falls angegeben.
http://www.w3schools.com/cssref/pr_gen_content.asp
Antwort #2
Sie müssen eine CSS-Regel hinzufügen, die den After-Inhalt (durch eine Klasse) entfernt..
Ein Update aufgrund einiger gültiger Kommentare.
Die korrektere Methode, die :after-Regel vollständig zu entfernen/deaktivieren, ist die Verwendung von
p.no-after:after{content:none;}
wie Gillian Lo Wong geantwortet hat.
Ursprüngliche Antwort
Sie müssen eine CSS-Regel hinzufügen, die den After-Inhalt (durch eine Klasse) entfernt..
p.no-after:after{content:"";}
und füge diese Klasse zu deinem p hinzu, wann immer du dies mit dieser Zeile tun möchtest
$('p').addClass('no-after'); // replace the p selector with what you need...
ein funktionierendes Beispiel unter: http://www.jsfiddle.net/G2czw/
Antwort #3
Wie in Gilliams Antwort erwähnt, löst das Zuweisen von none zu content das Problem:
p::after {
content: none;
}
Beachten Sie, dass in CSS3 das W3C empfiehlt, zwei Doppelpunkte (::) für Pseudoelemente wie ::before oder ::after zu verwenden.
Aus den MDN-Webdokumenten zu Pseudo-Elementen:
Hinweis: In der Regel sollten Doppelpunkte (
::) anstelle eines einzelnen Doppelpunkts (:) verwendet werden. Dies unterscheidet Pseudoklassen von Pseudoelementen. Da diese Unterscheidung jedoch in älteren Versionen der W3C-Spezifikation nicht vorhanden war, unterstützen die meisten Browser beide Syntaxen aus Gründen der Kompatibilität. Beachten Sie, dass::selectionimmer mit Doppelpunkten (::) beginnen muss.
Antwort #4
$('p:after').css('display','none');
