28172 sujets

CSS et mise en forme, CSS3

Salut à tous

en suivant le tutoriel : http://css.alsacreations.com/Faire-une-mise-en-page-sans-tableaux/Design-XHTML-CSS-complet-avec-2-colonnes-de-meme-hauteur

et surtout en lisant le code source, je suis tombé sur l'utilisation de feuilles multiples :
a écrit :

<link rel="stylesheet" type="text/css" href="css/main.css" media="screen" />
<link rel="stylesheet" type="text/css" href="css/positionnement.css" media="screen" />
<link rel="stylesheet" type="text/css" href="css/images.css" media="screen" />


Du coup, je me suis demandé dans quels cas on devait/pouvait les utiliser. Dit autrement : comment bien l'utiliser.
Tout simplement pour séparer les différents contenus, afin de rendre les CSS
- Plus lisibles
- Plus compréhensibles
- Plus rapidement mises à jour

Par exemple, tu peux regrouper la découpe et le positionnement des blocs du site dans une feuille, les couleurs dans une autre et les images dans une troisième feuille de style.
Ainsi, si tu veux juste changer de couleurs, tu peux changer la 2nde et la 3e feuille, alors que si tu veux juste mettre à jour ou modifier les images, tu ne t'occupes que de la troisième, et si tu veux modifier la structure de ton site mais pas les couleurs, tu change la 1ere et éventuellement la 3e feuille de style.

Ca peut aussi être utile dans le cas de templates, sur un site où tu peux changer "dynamiquement" le design, comme par exemple certains forums le proposent (dans les préférences d'utilisateurs) :
Il y a des éléments qui n'ont pas besoin de changer pour modifier certaines parties du site alors que d'autres oui. Ca évite de devoir dupliquer ces éléments fixes dans chaque feuilles de style, et donc c'est plus facile à maintenir / mettre à jour Smiley cligne
Modifié par superjun (29 Aug 2008 - 16:34)
Cela fait aussi plus de fichiers à télécharger pour la navigateur donc voir si le gain est vraiment intéressant ... Smiley cligne

a écrit :
... et donc c'est plus facile à maintenir / mettre à jour Smiley cligne


Possible ... ou pas (à voir selon le contexte). Mais il manque en effet des bons outils (pour ne pas citer un outil comme CSSEdit sous Mac) pour organiser son travail dans les feuilles de styles ... Smiley smile
Pour moi, le meilleur des outils reste le bloc-notes tout simple (j'utilise Notepad2 qui possède la coloration syntaxique et quelques autres fonctions avancées). Et c'est là que tu te rends compte de ce que t'apporte le splittage de ton travail Smiley smile

Trois fichiers de 4 ko ou un fichier de 12 ko, ça revient foncièrement au même à télécharger, avec peut-être un petit avantage pour la version "trois fichiers", puisqu'ils peuvent être téléchargés en parallèle... Et puis pour de si petits fichiers, la différence de poids n'est pas vraiment importante.
superjun a écrit :

Trois fichiers de 4 ko ou un fichier de 12 ko, ça revient foncièrement au même à télécharger, avec peut-être un petit avantage pour la version "trois fichiers"

Je m'y connais mal sur le sujet, mais je pense qu'au contraire, réduire le nombre d'accès serveur est préférable.
Administrateur
La réponse à la question de départ dépend du contexte: un site graphiquement simple de 5 pages ne sera pas développé de la même manière qu'un site portail développé par 3 intégrateurs et maintenu par 10 développeurs Smiley lol

Celui qui utilise le Reset CSS d'E. Meyer (billet de blog de Cygnus qui parle du sujet) fera un copier-coller du fichier reset.css dans son projet et ouvrira une nouvelle feuille de style sans toucher une ligne de reset.css: le jour où il veut modifier 3 lignes de reset.css, il n'aura qu'à remplacer les fichiers par une nouvelle version sans même les ouvrir ... et passer 1 journée à traquer les effets de bord sur ses vieux projets sur 6 navigateurs ... mais c'est une autre histoire Smiley sweatdrop

Idem pour les frameworks CSS (Yahoo grid CSS, etc): ils constituent une base de travail appelée en premier puis là-dessus viennent se greffer les CSS du site (un ou plusieurs autres fichiers).


HTML et CSS permettent de séparer contenu et forme; on peut vouloir séparer en plus:
- typographie et design graphique (colonnage, images, couleurs)

- par famille de gabarits (quand on a 30 gabarits à intégrer: la homepage, les pages principales, les pages de contenu, les formulaires complexes, la recherche, les pages bien graphiques qui ressemblent pas aux autres, etc),

- la charte graphique "qui changera jamais" (header, footer, menu de gauche) de ce qui change de temps en temps (une boutique de mode et ses 2 collections annuelles) de ce qui change souvent (site événementiel) de ce qui sera affiché 24H seulement (allociné ou dailymotion qui se mettent aux couleurs de son annonceur pour 24H ou bien 1er avril et jour de noël)

- sur un site archi-modulaire, une feuille de style par bloc ce qui facilite la réutilisation de chaque bloc dans n'importe quel type de page (exemple d'un client, à voir avec Firebug ou WDT pas dans le code source directement)

- pendant le développement au moins, un fichier par intégrateur minimum vu que les fichiers ouverts simultanément par 2 personnes et sauvegardés tour à tour sont pas gérés par les OS. Du moins si on n'utilise pas Subversion et SVN ou si on se sert de ces derniers comme sauvegarde, pas avec des commits venant de partout toutes les 5 secondes. Smiley smile

- pour la localisation et l'internationalisation, gérer les écritures de droite à gauche et gauche à droite avec ce qui est commun ou différent à ces deux sens d'écritures (mise en forme, images inversées ou pas, fontes, typographie, largeur des colonnes selon les écritures en allemand ou finlandais vs anglais), gérer les différentes langues (fonds avec du texte à traduire ou localiser des éléments nationaux genre un big mac pour les usa et une baguette pour les français Smiley lol )

Un fichier de plus de 3000 lignes, ça commence à devenir lourd (à gérer) sur la fin d'un projet (autant le découper pendant le développement et réunir les morceaux avant la mise en production) et à l'autre extrême avoir 5, 10, 20 fichiers ouverts c'est pas non plus évident à gérer, non pas quand on intègre mais quand on traque une régression ou que l'on applique une modification sur X anciens gabarits).
Il faut de plus séparer la phase de développement de la phase de production (des outils et scripts persos peuvent concaténer les fichiers automatiquement, les compresser/minifier, etc) et avoir 20 fichiers en dév mais 1 ou 3 en prod.

Il faut donc anticiper autant que possible les besoins: nombre de personnes impliquées et comment elles vont communiquer (le bureau à côté ou des échanges 2 fois par jour), taille et nature du projet, contraintes du CMS, choix d'un framework CSS, 2 manières de faire en dév et prod, etc
Ok, je crois que j'ai compris les subtilités ^^.

comme dans mon cas, il s'agit de petits sites vitrines, je suis pas sur d'avoir besoin tout de suite de m'en servir, mais au moins j'en ai compris la philosophie.

merci à tous.