Im folgenden Code habe ich ein internes Stylesheet mit einem Body-Tag platziert, anstatt es im Kopf zu haben. Für die Einzelseitenanwendung erwäge ich, dies für Stile zu tun, die nur für diese Seite gelten, anstatt über eine separate Datei pagespecific.css zu verfügen.
Gibt es ein Szenario, in dem dies Nachteile hat, da ich nicht dasselbe in den Kopfbereich setze?
<!-- myPartial.html starts here -->
<!-- Like to keep styles unique to this html right here in this file -->
<div>
<style>
body { background-color: red; }
#myText { color: white; }
</style>
<span id='myText'>Hello</span>
</div>
<!-- myPartial.html ends here -->
head
Element fehlen würde . Eine HTML-Seite hat immer eine.(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 eingebettetenSTYLE
Element zu kommen.Außerdem: Sie können a) einbetten bereits jede CSS überall in der
BODY
überSTYLE
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 derBODY
? 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 imBODY
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 istBODY
! 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 .
quelle
STYLE
ist jetzt gültig inBODY
! ;)Die HTML-Spezifikation besagt dies
Das Gültigkeitsbereichsattribut ist ein boolescher Wert, der angibt, dass er nur auf den Unterbaum angewendet werden soll, der im übergeordneten Element des Stilelements verwurzelt ist.
Derzeit unterstützt nur Firefox das Gültigkeitsbereichsattribut. http://www.w3schools.com/tags/att_style_scoped.asp
quelle
Es gibt einige technische Gründe dafür, dass Ihr CSS in einer Datei oder einem Style-Tag enthalten ist:
Einige meinungsbasierte Gründe für die Verwendung einer Datei:
Meine persönliche Präferenz ist es, Compass zu verwenden, um separate Dateien für jede Seite zu speichern und sie dann alle zu einer Datei zu kompilieren. Diese einzelne Datei würde auf jeder Seite enthalten sein. Wenn die Dateien später getrennt werden müssen, aus welchem Grund auch immer, können sie sich in der Zwischenzeit nicht lohnen.
quelle