64 votes

Déclarez le style CSS en dehors de l'élément "HEAD" d'une page "HTML"?

mon cas d'utilisation est le suivant :

Je suis de la composition d'une page HTML en utilisant des pièces qui sont valides des fragments de HTML mais pas des pages valides, comme Divs; ces éléments sont à l'aide de CSS pour gérer leur style.

J'aimerais permettre à chaque fragment à être responsable de ses propres exigences de style et de ne pas s'appuyer sur les déclarations des feuilles de style dans le principal fragment (celle avec le "HTML" de la balise).

Donc voici la question : est-il (standard) pour ajouter un peu de style CSS à l'extérieur de l'élément de TÊTE (à l'exclusion de la ligne de style via l'attribut "style") ?

Je suppose que je pourrais utiliser des images, mais je préfère éviter cette solution.

Merci d'avance pour votre aide.

MONTAGE FINAL :

Merci pour les propositions de zzzzBov, JMC Créatif et moontear, et après quelques tests, voici la réponse :

  • utiliser JavaScript pour charger dynamiquement un peu de CSS les feuilles de style : HTML4/XHTML et HTML5 compatible,
  • incorporer le "style" des éléments directement à l'intérieur de l'fragments : non-compatible avec HTML4/XHTML , mais semble être largement pris en charge, et est compatibles avec le format HTML5.

Comme je l'ai doit prendre en charge les clients de messagerie, j'ai utilisé la deuxième solution qui est d'ailleurs plus simple.

Merci à tous pour votre intérêt et votre participation.

66voto

zzzzBov Points 62084

HTML5 permet à la portée de l' style élément d'appartenir à l' styles'nœud parent et les enfants. (découvrez l' scoped d'attribut).

Je ne sais pas comment bien pris en charge, il est encore. Au moins une partie de la spec HTML5, il est probable d'obtenir un soutien beaucoup mieux dans les deux prochaines années.

Un exemple de la façon dont vous l'utiliser:

<div class="chunk">
  <style type="text/css" scoped>
    p
    {
      text-decoration: underline;
    }
  </style>
  <p>lorem ipsum dolor sit amet</p>
</div>

Juste assurez-vous d'utiliser le doctype html5 <!DOCTYPE HTML>.

13voto

Dennis G Points 12050

Il n'existe pas de standard moyen (EDIT: comme le HTML5 il est apparemment!) de l'ajout d'un <style> élément à l'extérieur de l' <head> balise - il est seulement permis de là, et NON dans l' <body> balise (Voir la DTD ici).

Si vous voulez style sur des fragments de HTML individuellement, et non pas utiliser des styles CSS dans votre tête, vous aurez besoin de recourir à des inline style. Cependant: la Plupart des navigateurs comprennent <style> tags à l'intérieur du corps, de sorte que vous pourriez aussi bien utiliser, mais votre page ne sera pas conforme aux normes.

En aucune façon:

  • Vous ne devez pas utiliser inline style
  • Vous devez respecter les normes de
  • Vous devez mettre le CSS dans la tête, là où il appartient

Ce que je comprends vous utilisez une sorte de template, où vous insérez des différents extraits de code HTML dans la page avec les différents modèles. Est-il si mauvais si vous mettez tous les styles dans un seul gros fichier CSS?

Serait-il impossible pour vous de charger dynamiquement un autre fichier CSS (via JS ou des scripts côté serveur), lorsque votre HTML fragment est inséré dans la page (ce qui serait la meilleure méthode)?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X