le style et les balises de script dans le corps HTML... pourquoi pas?
[Ceci est lié à cette question, mais pas puisqu'il n'est pas sur l'e-mail.]
Dans de nombreux cas-en particulier lorsque vous travaillez avec un CMS ou de quelqu'un d'autre cadre, il est beaucoup plus facile à intégrer <style>
balises et <script>
balises dans le <body>
que dans le <head>
. Cela semble fonctionner dans IE6, IE7 (Windows), Firefox 3.x et Safari (mac OS X).
À proprement parler, est-ce mal? Et si elle l'est, quelles conséquences négatives peut-il provoquer... en plus d'être complètement ignoré dans certains clients?
Remarque: Heureux tout le monde veut parler à SEC et de centraliser les styles. Imaginez une seconde que je veux utiliser les balises de style dans un document parce qu'ils ne SONT PAS GLOBAUX et que je N'AI PAS ACCÈS À LA TÊTE PAR PAGE. Pour quelque raison que ce soit, soit que le site se distingue sur un page par page, ou par paragraphe ou quoi que ce soit. Je ne suis pas intéressé par son difficile à suivre, vers le bas et changer. Je suis inquiet des conséquences possibles de l'utilisation de style dans le corps.
Vous permettant de centraliser des choses centrale. Tout le reste est la météorisation dans le centre des feuilles de style.
Vous devez vous connecter pour publier un commentaire.
Bien que les spécifications indiquent explicitement les balises de style ne sont pas autorisés dans la balise body, les spécifications ne sont pas tout ce qui compte. Les balises de Style sont pris en charge dans le corps par tous les principaux navigateurs, et c'est en fin de compte la façon dont les utilisateurs voient votre site.* Alors qu'il a longtemps été un lecteur pour de meilleures normes et des standards dans le navigateur de l'industrie, il y a aussi longtemps été une mobilisation générale pour rendre cassé documents ainsi que peut être.
Google, qui mène la spec HTML5 effort, simultanément maintient google.com qui viole les specs pour économiser des octets, en laissant les citations de ses valeurs d'attribut, à l'aide du sélecteur de hacks contre le CSS, y compris les balises de script avec aucun type ou de la langue, et des balises link avec aucun type. Un puriste pourrait faire valoir l'un des plus utilisés sur les sites internet est en train de violer les spécifications et en grave danger d'être horriblement misrendered. Ou, nous pouvons raisonner qu'aucun navigateur va entrer dans l'usage populaire qui ne peut pas rendre une telle largement utilisé hacks sur la spécification.
Donc, la question est plus de la façon dont le navigateur de l'industrie est - ce qui est l'une des deux meilleures spécifications, mais aussi en faisant de leur mieux pour honorer l'intention de pages qui contreviennent à ces spécifications. Mon pari est de balises de style va continuer à travailler dans le corps pendant une longue période à venir.
*De cette écriture, les balises de style dans le corps sont pris en charge avec un doctype HTML5 dans Firefox 3+, IE6+, Safari 2+, Chrome 12+. Le soutien probable remonte plus loin mais ces navigateurs sont rarement vus sur les interwebs.
Les contextes dans lesquels les
<script>
et<style>
balises peuvent être utilisées dépend du type de document que vous utilisez. Par exemple, je vais supposer que vous êtes en utilisant le doctype HTML5:La balise de script a trois contextes sous le doctype HTML5:
La balise style est un peu plus compliqué au contexte de la structure sous le doctype HTML5:
Essentiellement, cela signifie que vous pouvez placer la balise style et la balise de script dans le corps, puisque le corps est l'endroit où il de contenu de flux, et à la rédaction de contenu.
Comme toujours, consultez la spécification pour le doctype que vous utilisez.
La réponse courte:
STYLE
de l'élément est seulement admis comme enfant de laHEAD
élémentSCRIPT
de l'élément est admis comme enfant de laTÊTE
de l'élément, leCORPS
de l'élément et où inline-les éléments de niveau sont autorisés.La réponse détaillée:
STYLE
est défini pour être en la tête.divers:Et des éléments de tête.divers ne sont autorisés à être des enfants de la
HEAD
élément. DoncSTYLE
est seulement autorisé à être enfant de laHEAD
élément.SCRIPT
est défini pour être en tête.divers et dans spécial:Et spécial est défini pour être en inline:
En outre
SCRIPT
est également permis d'être l'enfant de laBODY
élément. DoncSCRIPT
est autorisé dans leHEAD
élément nad où inline est autorisé.Deux réponses possibles pour le style dans le corps:
Utiliser inline style. Vrai, vous perdrez les avantages internes et externes de style, mais si vous n'avez pas accès à l'en-tête, alors vous n'avez pas accès à l'en-tête.
Utiliser la portée de l'attribut dans l'élément style. Ce qui est nouveau, HTML5, mais l'idée est de limiter le champ d'application de la CSS à une partie d'une page, par exemple à un seul div. La mauvaise nouvelle, c'est qu'il n'est pas encore pris en charge (juillet 2011), il n'est ni rétro-compatible. Mais il y a (aurait) un plugin JQuery qui peut vous aider. Pour plus d'info:
Bien, vous avez le problème de ğfrğ des styles et des scripts dans votre contenu. Le principal mantra est le DRY (Don't Repeat Yourself) Principe. Vous pouvez utiliser un script ou un style particulier à plusieurs endroits. Lorsque que le style ou le script nécessite la modification, vous devez maintenant aller sur une chasse au trésor pour tous les lieux où que ce code existe. Garder vos styles et des scripts dans un lieu commun est l'idéal.
D'autre part, s'il est mineur problème du style (en pixels ou en poussant quelque chose lié à une seule vue), c'est probablement acceptable.
Mais pourquoi auriez-vous
style
-tags dans le corps? Les styles sont globales de toute façon, donc je ne peux pas trouver une raison logique de le faire.À simplifier et à séparer les choses encore plus, vous devriez utiliser des feuilles de style externes aussi.
Les Scripts sont autorisés, et est là pour une raison: Ils peuvent donner de sortie, elles doivent être exécuter à des moments spécifiques et d'autres raisons.
body#about p { font-weight: bold; }
Le plus gros problème, à mon avis, est la commodité. Si vous voulez changer le style d'une page, il est beaucoup plus facile de le faire si tout le style et informations sur le script se trouve dans une zone. Il est possible pour le style/script d'informations pour être en
<style>
nœud, dans lestyle
attribut d'un nœud (i.e.<body style='...'>
) ou dans un fichier externe (c'est à dire<link rel='stylesheet' type='text/css' href='style.css' />
). Il est beaucoup plus facile à utiliser même endroit que d'essayer de traquer tous les endroits qui ont un style qui pourrait se produire.Il est également intéressant de noter que le fait de dire, "en plus d'être complètement ignoré dans certains clients" revient à dire "en dehors de l'explosion lorsque vous frapper par derrière" ou "en dehors de s'envoler et atterrir dans un civil de quartier". C'est assez grave en soi un problème pour justifier l'utilisation de la norme de pratique.