Wikini

RendreModulairesLesFeuillesDeStyle

PagePrincipale :: DerniersChangements :: DerniersCommentaires :: ParametresUtilisateur :: Vous êtes ec2-18-232-125-188.compute-1.amazonaws.com

Rendre modulaires les feuilles de styles


Les feuilles de styles CSS permettent de modifier l'apparence visuelle d'un site web sans modifier le code Html de la page (voir CommentPersonnaliserGraphiquementWikiNiEn10Minutes). Pour Wikini, il n'y a que 2 fichiers CSS : un pour les très vieux navigateurs et un pour les autres. On peut déjà se demander pourquoi cette différenciation. En effet, les navigateurs ne supportant pas certaines règles CSS ignoreront tout simplement une partie du contenu de wakka.css mais exploiteront ce qu'ils reconnaissent. Il semble donc qu'on peut supprimer wakka.basics.css sans aucun scrupule, on y gagnera en maintenabilité. D'ailleurs, un petit diff nous dit que wakka.css contient un certain nombre de styles absents dans l'autre : oubli ou volonté délibérée ?

Ensuite il semblerait intéressant de scinder le fichier CSS en plusieurs fichiers plus petits notamment du fait des DiscussionsNormeDeCodageCSSPourWikiNi, le contenu du fichier principal serait limité à des @import url(<machin>.css). Certes tous les navigateurs ne reconnaissent pas cette règle pourtant issue de CSS version 1. Cependant un rapide tour chez CSS-only Filters Summary montre que rares (et antedéluviens) sont les navigateurs qui ne reconnaissent pas cette règle CSS - il s'agit de Netscape 4.0x et Konqueror 2.0.

Pour la modularisation des fichiers CSS

Contre la modularisation des fichiers CSS

Exemple de structure de fichiers CSS
wikini\css\
wikini\css\actions\ -> CSS liés à une action
wikini\css\custom\ -> différenciation page d'accueil, développements perso, adaptation des actions, etc.
wikini\css\ie\ -> ne seront lues que par IE


Note : IE et les CSS
Il est fréquent d'avoir à modifier les CSS conformes au W3C pour que ça marche bien dans IE. Le problème le plus courant est certainement le modèle de boîte (http://css-discuss.incutio.com/?page=BoxModelHack) mais il y a aussi le classique de la taille de la police small qui est trop grosse dans IE. Bref, un rendu impeccable dans les Gecko / KHtml / Opera ne donne pas forcément un beau résultat dans IE... Alors il faut que les CSS pour IE soient modifiés : c'est là que les CSS hacks entrent en jeu (http://css-discuss.incutio.com/?page=CssHack). Les problèmes avec ces méthodes sont que cela rend obscur le code CSS, que cela peut empêcher la validation CSS et surtout que quand IE7 sortira un jour, il faudra peut-être revoir tout ça... L'astuce la plus élégante consiste à plutôt utiliser des commentaires conditionnels (http://www.dithered.com/css_filters/html_only/conditional_comments_ie.html), une idée farfelue de MS mais pour une fois utile puisqu'on peut charger par ce biais des fichiers CSS spécifiques à une ou plusieurs versions de IE. Ces fichiers modifient alors les quelques attributs qui ne vont pas bien dans IE.



Discussions

Je trouve que l'idée n'est pas mauvaise, et d'ailleurs tant qu'à faire tout d'un coup, pourquoi pas RendreModulairesLesFeuillesDeStyle ? Ça devrait être assez simple: il suffit de générer la feuille de style principale en php, simplement en lisant un répertoire (par exemple stylesheets/) et en retranscrivant les noms de fichier @import url("stylesheets/fichier1.css"). On pourrait même faire des vérifications sur l'identification du navigateur via php (quoi que cette dernière idée n'est probablement pas si bonne puisque beaucoup de navigateurs, robots etc. contiennent IE dans leur user-agent...). -- LordFarquaad

La génération automatique du fichier wakka.css est un truc auquel j'avais pensé à vrai dire, mais comme j'ai vu qu'on cherche à optimiser au maximum le temps de réponse du moteur Wiki, je me disais donc que l'idée est encore à mûrir. Néanmoins comme tu t'y connais certainement beaucoup plus que moi en Php, j'ai l'impression que c'est tout à fait jouable. Pour moi ce serait un truc fabuleux : tu veux ajouter des CSS perso, ben tu crées un fichier CSS dans un sous-répertoire de /css et c'est tout ! Mise à jour du Wiki ? Pas de problème, ton fichier n'est pas concerné !!! Bon le seul problème, c'est que c'est totalement incompatible avec les versions précédentes de Wikini, mais on n'est pas encore en 1.0, non ? -- JmPhilippe

Pour ma part, je ne suis pas très favorable pour scinder les CSS en plusieurs fichiers : a mon sens 1. cela complique leur développement (obligation de travailler sur plusieurs fichiers en même temps ; immanquables problèmes de découpage, etc.) ; 2. cela multiplie les requêtes HTTP et affecte donc un peu les performances. L'avantage de wakka.css actuel c'est que la modification des styles est simple. Idéalement, les hacks devraient être les moins nombreux possibles voire inexistants. Dans certains cas, il vaut mieux se dire "tant pis pour tel navigateur" si le problème n'est pas fondamental : par exemple dans le cas de la taille de la fenêtre d'édition, j'ai très envie de dire : tant pis pour ceux qui ne le gèrent pas du moment que la CSS est standard et que cela n'est pas préjudiciable pour eux. -- CharlesNepote

J'y connais hélas rien en PHP ni en CSS mais ça serait quand même bien que Wikini intègre par défaut une bonne dizaine de CSS permettant de choisir la mise en page.

Pour ne pas prendre de risque, il suffirait que seul l'admin puisse changer de style par un simple menu déroulant qui listerait automatiquement toutes les css contenues dans un répertoire donné.

Possible ?
Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]