Achatsolutions travaille constamment à la maintenance de ses plateformes web et, plus particulièrement, sur ses interfaces utilisateurs. Le CSS est une des briques principales de la conception graphique des sites web.
Rappel – Problèmes et limitations de CSS
CSS est un langage déclaratif avec une syntaxe et une méthode d’évaluation simple.
Il est basé autour du concept de sélecteurs (classe, id, élément) avec un « scope » et des propriétés avec une notion de redéfinition (en cascade).
En soit le design du langage est cohérent et bon, il est compréhensible par des non programmeurs (designers), et permet une application performante des styles par le navigateur.
Il est également flexible, car malgré 30 ans d’histoire, sa syntaxe n’a que très peu évolué.
Mais…, car il y a malheureusement un « mais», les propriétés fournies et le choix des comportements associés sont problématiques…
Les bases du langage ont été posées par des personnes compétentes telles que Pei-Yuan Wei de Berkeley, cependant l’ajout de fonctionnalités (au travers de règles et propriétés) au langage s’est faite au fil de l’eau de manière chaotique dans un contexte de guerre des navigateurs.
CSS 2.1 et CSS 3 ont tenté de rectifier le tir, cependant le mal était déjà fait. En effet, les propriétés et comportements problématiques existent toujours afin d’assurer la rétrocompatibilité. Il est alors du devoir des programmeurs de se fixer des règles strictes pour éviter une complexité de maintenance trop grande et des affichages inattendus.
Problèmes et limitations :
Exemple :
- Multiplication de petites classes telles que « px-3 » ou « mx-auto » de Bootstrap qui ont une utilité réduite (c’est presque de l’équivalent d’un « margin inline » à ce stade), mais qui sont facilement réutilisables.
- Ajoute de classes spécifiques telles que « main-banner-right-button » qui ne sont pas réutilisables (dans ce cas il vaudrait mieux un ID).
- Création de classes spécifiques pour des composants qui se veulent réutilisables telles que « card-panel ».
- Jusqu’à peu, pas possibilité de réutiliser de valeur via des variables, mais le problème est résolu depuis peu via « var(…) ».
- Un moyen de faire un reset complet de style sur un élément ou une classe. Ce qui est fâcheux lorsque l’on souhaite mélanger plusieurs bibliothèques graphiques, chacune avec leurs styles appliqués sur les éléments HTML.
- L’impossibilité de sélectionner un élément parent par sélecteur. C’est une contrainte qui peut se comprendre d’un point de vue performance d’application des classes. Cependant elle n’en reste pas moins gênante.
Bonne pratique – Conventions CSS
Conventions nécessaires :
On peut par exemple décider d’organiser par type de propriété de cette manière :