Um <style>
Blöcke zu deaktivieren, erlauben alle Browser die Einstellung document.styleSheets[x].disabled = true
. Nur IE erlaubt jedoch, dass diese Eigenschaft auf das Tag selbst gesetzt wird, <style disabled="true">
. Gibt es dafür in anderen Browsern einen Workaround? Es erscheint merkwürdig, dass etwas, das dynamisch erledigt wird, nicht auch statisch ausgeführt werden kann.
Das style
-Element hat kein gültiges Attribut namens disabled
. Aus der HTML-Spezifikation :
Die HTMLStyleElement
DOM-Schnittstelle hat jedoch eine solche Eigenschaft. Aus der DOM-Spezifikation :
Verwechseln Sie ein HTML-Element nicht mit seinem Gegenstück im DOM. Es ist nicht "seltsam, dass etwas, das dynamisch erledigt wird, nicht auch statisch ausgeführt werden kann." Die HTML- und DOM-Spezifikationen wurden erstellt, um verschiedene Probleme zu lösen. HTML ist eine Auszeichnungssprache. Das DOM ist eine Konvention zum Darstellen und Interagieren mit den Objekten in einem Dokument.
Eine einfache Möglichkeit besteht darin, es zu einem alternativen Stylesheet mit einem anderen Titel als dem Hauptstilvorlagensatz zu machen. Dadurch werden Browser standardmäßig deaktiviert.
Das Attribut media
kann sowohl im HTML als auch in Javascript gesetzt werden. Die Idee ist, das Attribut media
so zu setzen, dass das style-Tag nicht auf ein Gerät angewendet wird, um es zu deaktivieren.
Ich denke, es auf etwas Ungültiges wie media="bogus"
oder media="none"
zu setzen, ist riskant, da der Browser das Prädikat einfach ignorieren und den Stil auf alle Medientypen anwenden kann. Glücklicherweise ist die Einstellung einer maximalen Bildschirmbreite von einem Pixel durchaus zulässig, und in meinem Buch ist das so ähnlich wie das Deaktivieren des Stil-Tags.
Tags und Links javascript html css stylesheet