Ordre d’appel des styles dans SPIP

La méthode Daisy appliquée à SPIP

27 mai 2011,
par Romy Têtue

Mots-clefs associés à cet article :

En adoptant un ordre d’appel en 3 temps, qui donne successivement la main à la base CSS, aux plugins, puis au webmestre, la méthode Daisy permet de limiter les risques de conflit de style liés aux apports des différents plugins, pour une meilleure modularité du projet.

Voici comment elle est appliquée dans SPIP, via la nouvelle « base CSS 2 » et quasiment à l’identique dans la dernière version SPIP 3.

Ordre d’appel des feuilles de style

La méthode Daisy appliquée à SPIP

  1. Base CSS
    Cette base CSS insère les fichiers présents qui portent ces noms (d’après la nomenclature Daisy), en première position, avant toute autre feuille de style et dans l’ordre suivant :
    1. reset.css : correction des styles par défaut (mise à zéro multinavigateurs)
    2. clear.css [*] : trucs pour faciliter la mise en page
    3. typo.css [*] : base typographique
    4. form.css : base pour les formulaires
    5. etc.
    6. grid.css (si vous la fournissez)
    7. layout.css (à remplacer par le vôtre)
  2. Plugins
    Après les styles associés au code généré par SPIP (dans spip.css), les plugins insèrent leurs feuilles de style ensuite (via #INSERT_HEAD_CSS). Ils bénéficient donc de cette base CSS. On aura par exemple :
    • colorbox.css
    • comments.css
    • etc.
  3. Styles perso
    Personnalisez en ajoutant vos styles en dernier pour avoir le dernier mot, comme ceci (en autant de feuilles que bon vous semble) :
    [<link rel="stylesheet" href="(#CHEMIN{css/perso.css}|direction_css)" type="text/css" />]

Comme on le voit, les déclarations CSS sont ici regroupées par fonctionnalité (et non par média, navigateur ou autre). L’on procède ensuite par surcharges successives, chacun son tour.

Remarques et avantages

Plus besoin de spip_style.css !

Les feuilles de style historiques de SPIP (spip_style.css, spip_formulaire.css, etc.) ne doivent pas être utilisées, puisque cette base CSS les remplace. Celles-ci disparaissent d’ailleurs de SPIP 3, qui adopte cette base CSS pour l’espace privé, depuis la révision 17937.

Pas besoin de feuilles par navigateur

Mieux vaut utiliser les classes conditionnelles, notamment pour Internet Explorer : « .ie », « .ie6 », « .ie7 », etc.

Pas besoin de feuilles par média

Sauf cas particulier, les surcharges pour l’impression et autres medias s’effectuent au fil de l’eau, dans la même feuille, grâce à la règle CSS @media suivie directement du type. De cette façon, on conserve groupées toutes les déclarations qui concernent un même élément, ce qui améliore la modularité et facilite la maintenance.

Pas besoin de feuilles par langue

Il n’est pas nécessaire de fournir de feuille pour chaque version linguistique d’un site, même au sens de lecture inversé comme l’arabe ou l’hébreu, puisque SPIP génère les feuilles nécessaires (grâce au filtre |direction_css), en inversant les valeurs right et left. Kiffant !
Si besoin, utiliser les sélecteurs de langue « .fr », « .en », « .de », etc.

Pas besoin de script de compression

On le sait, démultiplier ainsi les fichiers n’est pas très performant. Mais ce n’est pas un problème ici, puisque SPIP se charge, de façon très appréciable, de compacter (concaténer et minifier) toutes les feuilles de style en une seule [*]. Il suffit pour cela d’« activer la compression » des CSS, depuis l’espace privé.

{#TITRE,#URL_ARTICLE,#INTRODUCTION}

Vos commentaires

  • Le 15 juillet 2011 à 16:43, par Fab1988 En réponse à : La méthode Daisy appliquée à SPIP

    Merci pour vos conseils ! Ils sont très utiles surtout lorsque l’on débute comme moi dans la programmation. Je vous lis vraiment avec plaisir.

  • Le 1er septembre 2017 à 16:20, par Nina En réponse à : Ordre d’appel des styles dans SPIP

    Hola y donde configuro (SPIP) el sitio web visto por el público y tenga los archivos CSS y JS reducidos de forma automática (o como puedo hacer esa compresión, minificado/compacta) reset.css, clear.css, typo.css, form.css, jascript.js, otro.js, etcétera

Répondre à cet article

forum message

Raccourcis : {{gras}} {italique} -liste [bla->url] <q> <quote> <code>.

Qui êtes-vous ? (optionnel)

Suivre les commentaires : RSS 2.0 | Atom