Dans le code ci-dessous, j'ai placé une feuille de style interne avec une balise dans le corps, au lieu d'avoir dans la tête. Pour une application à page unique, j'envisage de le faire pour les styles qui ne s'appliquent qu'à cette page seule, plutôt que d'avoir un fichier pagespecific.css distinct.
Y a-t-il un scénario où cela a un inconvénient car je ne mets pas le même dans la section tête?
<!-- 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
élément. Une page HTML en a toujours un.(Étant donné que nous sommes ici à SE.SX, une approche plus stratégique peut être une augmentation précieuse des considérations techniques habituelles.)
[préambule] La spécification HTML5 est une cible en constante évolution et elle a une politique de suivi des pratiques courantes établies. Ils ont obsolète et ressuscité des caractéristiques dans le passé, changé le sens des autres, déplacé le centre des recommandations méthodiques, etc. Ce n'est pas écrit pour l'éternité avec toute la sagesse de l'humanité disponible à la fois. La spécification n'est pas une source sacrée de vérité. Il est naturel que les navigateurs aient parfois raison. [/préambule]
La situation du PO est extrêmement courante et valable.
Vous avez un CMS, avec son thème conçu et installé, tout le CSS correctement chargé à partir de HEAD, puis vous voilà, l'éditeur de page, laissé avec une boîte WYSIWYG à la mode que vous pouvez (Dieu merci!) Passer en "mode source" et taper (coller) dans le balisage HTML (précédemment créé ailleurs, avec des outils plus adaptés). Heureusement, vous pouvez même inclure des
STYLE
balises (peut-être en raison d'une omission fortuite dans un filtre de balises) ... La journée est sauvée, grâce à de nombreux travaux répétés de destruction de l'âme. Mais vous n'avez toujours aucun moyen d'interférer avec l'élément HEAD du système à partir d'un scénario d'édition de page.Cela devrait-il vous empêcher d'utiliser votre CSS de manière simple avec vos fragments HTML, simplement parce que la spécification le dit?
Ou, vous avez une application AJAX d'une seule page.
Il fonctionne sans rechargement pendant une longue session, et il existe du contenu syndiqué provenant de diverses sources aléatoires, toutes de style arbitraire et indépendant. Il serait absurde d' exiger qu'ils soient d'abord convertis pour utiliser uniquement des
STYLE
attributs en ligne au lieu de simplement venir avec unSTYLE
élément incorporé .De plus: vous pouvez a) déjà intégrer n'importe quel CSS n'importe où dans le
BODY
, via desSTYLE
attributs, donc le CSS est "théoriquement" légal de toute façon; et b) vous pouvez déjà faire tout ce que vous voulez avec à peu près n'importe quel style, quand vous voulez (et plus) à partir de Javascript, donc CSS est également déjà possible de mal utiliser de manière pathologiquement non performante. Et aucun de nous ne s'opposerait jamais à ces caractéristiques. Le W3C non plus.Alors, qu'est-ce qui est si mauvais dans les
STYLE
éléments duBODY
? Quelles sont ces implications négatives supplémentaires que cela ajouterait à notre vaste arsenal d'abus dans les constructions HTML? Plus de mauvaises performances? Probablement. Quelquefois.Est-ce une raison valable pour abolir cette pratique incroyablement utile, prise en charge par tous les navigateurs pour une raison? Pas dans un million de kilomètres!
Nous ne sommes pas des idiots. Eh bien, pas tous, ou pas toujours ...;) Les techniques avec le risque de mauvaises performances pourraient simplement être documentées , plutôt que simplement interdites. Nous avions des applets Java dans les premiers jours du Web et nous avons survécu. Les voitures peuvent être utilisées à mauvais escient, provoquant la misère, même la nourriture peut être utilisée de manière dérangeante et inefficace, et les conducteurs qui peuvent manger peuvent être, en moyenne, encore plus stupides que le concepteur de sites Web moyen. D'ailleurs, cher W3C, pas d'inquiétude: les troupeaux en colère de bricoleurs HTML se faisant tirer les pattes avec des
STYLE
éléments dans l'BODY
alambic ne peuvent pas aller après le W3C et se venger. Ils ne connaissent pas l'adresse. Et ils n'ont pas de jambes.Alors, s'il vous plaît: faites entendre votre voix pour
STYLE
devenir légal enBODY
! Citer docilement le texte, mais ne pas fournir d'alternative viable qui soit meilleure que la situation actuelle n'est d'aucune utilité. C'est en fait une menace pour cette technique de contournement de dernier recours.N'oubliez pas: la spécification HTML5 est appelée une recommandation .
la source
STYLE
est désormais valable enBODY
! ;)La spécification html indique que
L'attribut scoped est une valeur booléenne indiquant qu'il doit être appliqué uniquement à la sous-arborescence enracinée dans l'élément parent de l'élément style.
À l'heure actuelle, seul Firefox prend en charge l'attribut de portée. http://www.w3schools.com/tags/att_style_scoped.asp
la source
Il y a quelques raisons techniques pour avoir votre css dans un fichier vs une balise de style:
Quelques raisons basées sur l'opinion d'utiliser un fichier:
Ma préférence personnelle est d'utiliser Compass pour conserver des fichiers séparés pour chaque page, puis l'utiliser pour les compiler tous dans un seul fichier. Ce fichier unique serait inclus par chaque page. Si en cours de route, les fichiers doivent être séparés pour une raison quelconque, ils peuvent toujours l'être, mais cela ne vaut pas la peine en attendant.
la source