Je reviens vers vous sur la question des frameworks CSS suite à la lecture de A Reflexion About Semantic Grids qui défend grosso modo le point de vue selon lequel les frameworks ne sont pas sémantiques et incitent à marcher sur la tête en bousculant le flux de production web.
A première vue, les classes ajoutées au code HTML par les déclarations présentes dans les bibliothèques CSS sont essentiellement destinées à la présentation. Un peu comme si l’on mettait une classe .rouge
pour afficher en rouge ce qui est important dans le texte, alors que tout le monde sait que .red
, étant plus court, est bien plus approprié ^_^v (je suppose ici que les professionnels du web seront sensibles à l’ironie ; je ne suis pas inquiet pour les autres !).
Ensuite, à cause des frameworks CSS, l’intégrateur serait obligé de commencer par la feuille de style au lieu de baliser correctement son contenu avec du HTML bon CHIC (Code Html Intrinsèquement Classe) bon genre.
Vous avez dit web sémantique ou flux de production web ?
Je ne suis pas vraiment convaincu par ces arguments car la sémantique ne se réduit pas à la place des opérations à accomplir dans le flux de production web : à partir du moment où l’on connait le pas de la grille, il n’y a aucune raison de ne pas générer le fichier grid.css
qui va bien. D’autant plus que cette grille ne devrait avoir aucune influence sur la qualité du code HTML à venir, si justement, l’intégrateur ou le webdesigner a pris soin de séparer le fond de la forme en amont.
Mais surtout, à part quelques frameworks qui nécessitent jusqu’à trois classes — voire plus — pour placer un bloc (ce qui commence à manquer de factorisation), la suite des .span-x
peut se comprendre comme l’importance accordées à chaque bloc : du moins important (.span-1
) au plus important (.span-24
), à l’image de la presse écrite où un article surmonté d’un titre en 8 colonnes à Une mérite plus d’attention qu’un entrefilet sur 2 colonnes.
C’est dans cet esprit que je préfère un .span-x
à un .grid-x
, d’autant plus qu’il existe déjà un élément span
en HTML.
Est-ce une raison pour justifier l’utilisation d’un framework CSS ?
J’aime bien tester rapidement différentes déclinaisons d’une charte graphique avec les frameworks. En effet, dès que le fichier grid.css
(ou layout.css
, maquette.css
, etc.) est en place, on peut déplacer les blocs de contenus très rapidement : l’Édito sur 6 ou 8 colonnes ? Le Sticky Post, avec une marge à gauche ou à droite ? etc.
Quand les choix sont validés, je refais la partie layout de mon fichier styles.css
avec les éléments utilisés réellement tout en gardant grid.css
sous le co(u)de prêt à servir avec une règle @import
entre commentaires.
Par exemple, pour tester ma grille, j’ai tendance à utiliser :
Et en production :
Avec :
#sticky-post {
width: 310px;
float: left;
margin-right: 0;
overflow: hidden; /* avec #sticky-post { zoom: 1 } dans le fichier ie.css */
}
Et ainsi de suite avec tous les éléments de la page. C’est un peu fastidieux, mais au final — et pour peu que vous réunissiez toutes vos CSS dans un fichier unique bien commenté — votre code HTML et votre feuille de style CSS y gagneront en lisibilité et surtout en légèreté.
Bonsoir,
La sémantique ne se résume heureusement pas au flux de production ! 🙂 Je reste convaincu que des bonnes méthodes de travail restent le meilleur moyen d’éviter les erreurs. Il n’en reste pas moins que ton point de vue est très intéressant.
Quand à la sémantique des
span-xx
, tu m’a très facilement convaincu et je me range derrière ton point de vue.Pour ce qui est de l’utilisation d’un framework, elle peut effectivement être productive, si comme tu le montre, on s’arrange après mise en place du layout/grille/maquette pour supprimer les classes inutiles et redondantes.
Bref, merci pour ce petit focus sur mon travail, je retourne lire ton site très instructif.
Cordialement,
Denis Chevalier
Hello,
On voit de suite que tu es très pointilleux. Tu as l’air de maitriser ton sujet.
Je n’ai pas encore franchi le pas avec les framework CSS par « peur » de perdre la main sur mon code.
Ton point de vue est intéressant car il remet justement le web designer en position centrale. Utiliser un framework c’est bien, le comprendre c’est mieux. Ta technique est peut-être un peu longue et fastidieuse mais elle a au moins le mérite de permettre de comprendre le fonctionnement de son framework et même de l’optimiser si besoin.
Je suis « presque » convaincu. Bon article!
Au fait ? Tu as terminé ton travail de refonte sur ce blog ou tu es encore en phase de recherche?
Merci beaucoup pour vos retours sur ce billet finalisé sur un Sony Ericsson W595 grâce à Opera mini et à ses 5524 car. disponibles pour l’édition des textes…
J’aurai sans doute l’occasion de revenir — encore — sur ce sujet. Stay tuned!
Je pense que leur utilisation dépends du projet.
Je ne vais pas en utiliser sur un projet personnel sur lequel j’ai le temps de faire une feuille de style css propre, en partant juste d’un reset.css.
Par contre sur des projet professionnels de maquette, ou des projets courts d’intranet ou le design est « secondaire » et ou je n’ai que deux mois de dev, j’apprécie particulièrement les frameworks css et le temps qu’il me font gagner.
Rapidité de prise en main, rapidité de mise en place, rendu correct, c’est un très bon compromis !
Ce que j’aime bien faire c’est utiliser un processeur css php qui fait tout ça pour moi en compressant le tout. On n’a plus à réfléchir et on indique le colonnage dans la css (et non dans le html).
Par exemple :
primary-content { columns: 8; padding: 0 15px;}
Sera interprété pour que #primary-content prenne 8 colonnes avec 15 pixels de padding (le processeur fait l’opération de soustraction tout seul).
J’ai écrit un petit article là-dessus pour ceux que ça intéresse : http://www.lunaweb.fr/coder-en-css-plus-rapidement-plus-intelligemment/
Eh bien, si ça te fais plaisir c’est très bien. Mais ça n’a strictement rien à voir avec la sémantique HTML. Plus généralement, les classes «sémantiques» n’ont rien à voir avec la sémantique HTML (si si), et sont juste une question d’organisation personnelle et/ou collective. Dire du choix d’une classe qu’il n’est pas sémantique est une bêtise. Dire qu’il marche plus ou moins bien dans le workflow d’une équipe est pertinent.
Tu fais d’ailleurs la distinction entre sémantique et workflow dans le paragraphe précédent. Dommage que tu semble alors revenir à l’idée (erronée) de sémantique pour parler du nom des classes. Mais je sur-interprète peut-être?
J’ai vraiment du mal à comprendre la notion de class sémantique. Certes, un nommage cohérent est important pour la maintenabilité du code, mais de la à parler de sémantique il y a un monde.