(Da wir hier bei SE.SX sind, kann ein strategischerer Ansatz eine wertvolle Ergänzung zu den üblichen technischen Überlegungen sein.)
[Präambel] Die HTML5-Spezifikation ist ein sich ständig bewegendes Ziel, und sie hat eine Richtlinie, die den etablierten gängigen Praktiken folgt. Sie haben in der Vergangenheit Merkmale überholt und wiederbelebt, die Bedeutung anderer verändert, den Fokus methodischer Empfehlungen verschoben usw. Es ist nicht für alle Ewigkeit geschrieben, mit der ganzen Weisheit der Menschheit auf einmal verfügbar. Die Spezifikation ist keine heilige Quelle der Wahrheit. Es ist nur natürlich, dass manchmal die Browser richtig sind. [/Präambel]
Die Situation von OP ist überwiegend verbreitet und gültig.
Sie haben ein CMS, dessen Design entworfen und installiert ist, das gesamte CSS, das ordnungsgemäß von HEAD geladen wurde. Dann haben Sie, der Seiteneditor, eine modische WYSIWYG-Box, mit der Sie (Gott sei Dank!) In den "Quellmodus" wechseln können Geben Sie (Einfügen) in das HTML-Markup ein (zuvor an anderer Stelle erstellt, mit besser geeigneten Werkzeugen). Glücklicherweise können Sie sogar STYLE
Tags einfügen (möglicherweise aufgrund eines zufälligen Auslassens in einem Tag-Filter) ... Der Tag wird durch viele sich wiederholende seelenzerstörende Grunzarbeiten gerettet. Sie haben jedoch immer noch keine Möglichkeit, das HEAD-Element des Systems aus einem Seitenbearbeitungsszenario heraus zu stören.
Sollte Sie das davon abhalten, Ihr CSS auf einfache Weise mit Ihren HTML-Fragmenten zu verwenden, nur weil die Spezifikation dies sagt?
Oder Sie haben eine einseitige AJAX-Anwendung.
Es wird für eine lange Sitzung ohne Neuladen ausgeführt, und es gibt syndizierte Inhalte aus verschiedenen zufälligen Quellen, die alle willkürlich und unabhängig gestaltet sind. Es wäre absurd, zu verlangen, dass sie zuerst konvertiert werden, um nur Inline- STYLE
Attribute zu verwenden, anstatt nur mit einem eingebetteten STYLE
Element zu kommen.
Außerdem: Sie können a) einbetten bereits jede CSS überall in der BODY
über STYLE
Attribute, so CSS ist „theoretisch“ legal dort sowieso; und b) Sie können bereits mit nahezu jedem Stil tun, was Sie wollen, wann immer Sie (und mehr) von Javascript wollen, so dass CSS auch bereits auf pathologisch nicht performante Weise missbraucht werden kann. Und keiner von uns würde jemals gegen diese Merkmale Einwände erheben. Auch das W3C nicht.
Also, was genau ist so böse an STYLE
Elementen in der BODY
? Was sind diese zusätzlichen nachteiligen Auswirkungen, die sich auf unser breites Arsenal an Missbrauch von HTML-Konstrukten auswirken würden? Mehr schlechte Leistung? Wahrscheinlich. Manchmal.
Ist das ein triftiger Grund, diese unglaublich nützliche Praxis abzuschaffen, die von jedem Browser aus einem bestimmten Grund unterstützt wird? Nicht in einer Million Meilen!
Wir sind keine Idioten. Nun, nicht alle oder nicht immer ...;) Techniken mit dem Risiko einer schlechten Leistung könnten einfach dokumentiert und nicht nur verboten werden. Wir hatten in den frühen Tagen des Web Java-Applets und haben überlebt. Autos können missbraucht werden und Elend verursachen, sogar Lebensmittel können auf störende, ineffiziente Weise verwendet werden, und Fahrer, die essen können, sind im Durchschnitt sogar noch dümmer als der durchschnittliche Webdesigner. Außerdem, lieber W3C, kein Grund zur Sorge: Die wütenden Herden von HTML-Bastlern, denen die Beine mit STYLE
Elementen im BODY
Still abgeschossen wurden, können dem W3C nicht nachgehen und sich rächen. Sie kennen die Adresse nicht. Und sie haben keine Beine.
Also bitte: Lassen Sie Ihre Stimme dafür hören, dass STYLE
sie legal ist BODY
! Das gehorsame Zitieren des Textes, aber das Fehlen einer praktikablen Alternative, die besser ist als die aktuelle Situation, hilft nichts. Es ist tatsächlich eine Bedrohung für diese Workaround-Technik der letzten Instanz.
Denken Sie daran: Die HTML5-Spezifikation wird als Empfehlung bezeichnet .