const style = document.createElement("style")
style.textContent = "h1 { background-color: red; }"
document.head.appendChild(style)
Der moderne und einfache Weg
Der obige Code ist das Wesentliche; lesen Sie weiter, wenn Sie die Gründe dafür erfahren möchten.
Warum eine andere Antwort? Die akzeptierte Antwort ist veraltet und enthält überflüssigen Code für veraltete Browser wie den Internet Explorer. Andere Antworten sind unnötig komplex oder verwenden Eigenschaften wie .innerHTML
die Cross-Site-Scripting-Angriffe ermöglichen.
En type
Eigenschaft wird nicht benötigt
Die meisten Antworten setzen die type
Eigenschaft wie folgt: style.type = "text/css"
. Die Einstellung dieser Eigenschaft ist nicht erforderlich, es sei denn, Sie müssen ältere Browser unterstützen.
Nach Angaben von <style>: Das Element für Stilinformationen - HTML | MDN die type
ist optional und wird standardmäßig mit text/css
:
type
Dieses Attribut definiert die Formatierungssprache als MIME-Typ (der Zeichensatz sollte nicht angegeben werden). Dieses Attribut ist optional und hat den Standardwert text/css
wenn es nicht angegeben ist; andere Werte als die leere Zeichenkette oder text/css
werden nicht verwendet. Nota : Es gibt kaum einen Grund, dieses Attribut in moderne Webdokumente aufzunehmen.
Hinzufügen des CSS
Um das CSS hinzuzufügen, verwenden Sie .textContent
da sie sicherer und schneller ist als alternative Methoden. Im Gegensatz zu .innerHTML
wird HTML nicht geparst und kann daher verhindern, dass Cross-Site-Scripting-Angriffe .
Eine weitere ähnliche Eigenschaft, .innerText
ist wie .textContent
aber berücksichtigt CSS-Stile und stellt nur den "gerenderten" Textinhalt dar. Da wir nicht an "gerendertem" Inhalt interessiert sind, bevorzugen wir .textContent
.
Was bedeutet die Einstellung .textContent
tun?
Einstellung der .textContent
Eigenschaft entfernt alle Kinder des Knotens (Elements) und ersetzt sie durch den angegebenen String-Wert.
Wo soll das Element platziert werden?
Das Stilelement sollte in den Kopf eingefügt werden: "Die <style>
Element muss innerhalb der <head>
des Dokuments. ...". [ <style> ... | MDN ]
Um den Kopf zu erhalten, verwenden Sie document.head
wie sie es war unterstützt von allen wichtigen Browsern schon seit langem, so dass es keinen Bedarf für weitere Ausweichmöglichkeiten gibt.