[essai de définition]
Les CSS forment un langage informatique permettant de contrôler facilement les règles de mise en forme d'une page web, sans en changer le code
HTML/XHTML.
CSS ne contrôle pas la mise en forme proprement dite, mais
les règles de mise en forme.
Pour cela, le langage des CSS est fondé sur la notion de style - expliquant son nom "Cascading Style Sheet", signifiant littéralement "feuilles de styles en cascades".
Une feuille de style est une somme de styles destinée à contrôler la présentation de la ou les pages qui s'y réfèrent. Grâce à une feuille de style on obtient une séparation complète entre les données et leur règles de présentation.
Les CSS sont un standard d'internet formalisé par le W3C - l'instance normative d'internet.
Lectures INDISPENSABLES
Pour les débutants comme pour les utilisateurs confirmés, ces lectures expliquent les enjeux et les options de mise en oeuvre des feuilles de style CSS.
- Jongler avec les standards: les options disponibles Erreur 404 le 13/06/04 [fr], par LaurentDenis.
- Cette page a le mérite d'exister, pourtant elle me semble très imparfaite :
- il est difficile de se rendre compte de quels navigateurs seront compatibles avec chaque solution
- certains commentaires laissent le lecteur perplexe, par ex. les dernières lignes de la solution 3 semblent la rejeter sur une question de principe (NS4 et IE4 ne gèrent pas parfaitement CSS1) alors qu'il s'agit d'une solution de compromis (ou il faut évidement utiliser uniquement les instructions CSS1 gérées par ces navigateurs) -- EricSegui
- Quelques propos rapides [fr], tirés d'un entretien avec Jeffrey Zeldman, sur l'intérêt des CSS, les rapports entre tableaux et "box model" CSS2, le support actuel des navigateurs.
- Une page d'exemple Erreur 404 le 13/06/04 [en], par Eric A. Meyer, montrant les nombreuses possibilités des feuilles de style.
- CSS Zen Garden [fr], de grande qualité graphique, par Dave Shea : un menu vous permet de sélectionner votre feuille de style. Visite guidée à travers 29 exemples choisis pour leur diversité graphique et technique :
- La rubrique CSS du site openweb.eu.org [fr] : le site de référence en la matière.
- Why tables for layout is stupid [en], par Bill Merikallio et Adam Pratt : un diaporama très clair et très complet sur la question des CSS et du marquage structurel : un document incontournable...
- Le Tao du web designer (fr) , ou l'interêt de séparer le fond de la forme, car web et papier ne sont pas pareil. Pour bien comprendre la philosopie qui guide l'usage des CSS.
La norme
Livres
Cours et tutoriels
Forums
Listes de diffusion
Éditeurs et outils relatifs aux feuilles de style CSS
- CaScadeS [en] (logiciel libre, multi plateformes), éditeur pour Mozilla. L'intégration à Mozilla permet, à partir de la petite "palette" flotante composant son interface, de visualiser les modifications en temps réel sur la page affichée en second plan (cette
d'une version ancienne donne une petite idée du résultat).
- TopStyle Lite pour Windows [en]
- CssEditors [en] : liste d'éditeurs CSS sur le wiki de CSS-discuss.
- Web Development Bookmarklets [en] : plus d'une quinzaine d'outils indispensables en JavaScript. Des outils vraiment incontournables : "edit style" (pour Mozilla), par exemple, permet de modifier en temps réel la feuille de style d'une page ; "computed styles" calcule et liste tous les styles affectés à un élément, permettant de déboguer facilement un comportement inattendu ; etc.
- La dernière version de Dreamweaver, "MX 2004", semble offrir un support intéressant des CSS [fr].
- La "Web Developer extension" [en], indispensable extension pour Mozilla destinée à tous les développeurs web en général et CSS en particulier.
- NVU [en] : la reprise du composer de Mozilla. La version est encore en développement mais promet un bel avenir. -- JeanMorlet
- Scite [fr], est un éditeur de texte multi-plateforme qui offre la coloration syntaxique du code CSS, indique en rouge les erreurs syntaxiques et permet la complétion des propriétés CSS.
Générateurs de code CSS en ligne
- Layout-o-matic [en] : génère le code CSS d'une mise en page en une, deux ou trois colonnes (assure la compatibilité avec les navigateurs au support CSS défaillant)
- List-o-matic [en] : génère le code CSS pour des éléments d'interface à base de listes : menus divers, onglets, etc.
Quelques retours d'expériences sur les CSS
Le support des CSS dans les divers navigateurs
- Mozilla (1.0 et suivants) et Opera 7 sont unanimement reconnus comme les navigateurs supportant le mieux les feuilles de styles CSS1 et CSS2. Mozilla semble même s'offrir le luxe de gérer d'ores et déjà des attributs CSS3 comme dans cet exemple.
- Un tableau assez complet sur le support CSS2 [en] où l'on observe, d'un strict point de vue quantitatif (discutable), qu'Opera 7 devance Mozilla d'une courte tête, ces deux derniers surpassant largement, dans l'ordre, Konqueror, Opera? 5 et 6, Internet Explorer 5 Mac, IE 6, etc. On notera la différence importante entre IE 5 Mac et IE 6 Win, à l'avantage du premier...
- Will the browser apply the rule(s)? [en] : tableau synthétique du support par les principaux navigateurs des attributs permettant le contournement de leurs bogues.
- Un test remarquablement simple pour savoir si votre navigateur préféré est compatible avec le fameux "box model" introduit dans les CSS2.
- Un contournement du bogue d'IE (5-5.5) relatif au tailles dans le modèle de boîte CSS1 [en].
- Windows Explorer vs. the Standards [en], liste tous les bogues d'Internet Explorer relatifs au support des standards.
- Box Model Fix [en] est un JavaScript capable de convertir à la volée du code CSS valide en code bogué à la Internet Exporer. La page propose une démonstration, preuve à l'appui.
- Spécifications supportées par Opera 7.
- Spécifications CSS 2.1 supportées par khtml 3.1 (Konqueror et potentiellement Safari).
- Spécifications CSS 1.0 et CSS 2.0 non supportées par Safari.
- Navigateurs supportant les CSS pour l'impression [en].
- Les navigateurs textuels, comme LynX ou Links, ne supportent pas les CSS.
Les pratiques
- Gérer les modèles de boîtes CSS standard et Microsoft [fr], par LaurentDenis.
- Un script PHP pour éviter le Box Model Hack [fr], par Batiste Bieler.
- Le wiki de CSS-Discuss [en] est le lieu incontournable pour parler des pratiques sur les CSS.
- Overflow avec fond fixe en CSS [fr], par Olivier Meunier : ou comment gérer du texte dans une boite avec ascenseur dans une page Web.
- Initiation au centrage en CSS [fr], par LaurentDenis.
- Employer correctement l'attribut title avec des feuilles de style externes [en/fr], par Eric A. Meyer (trad. française LaurentDenis).
- Changer de présentation à la volée [en] avec un aiguilleur de feuilles de style en JavaScript, par Paul Sowden. On lira en outre, une application de cette technique [en] par Eric A. Meyer et Susie Wyshak, ainsi que l'impressionante page d'exemple d'Eric A. Meyer.
- Avec ou sans tableaux ???
- L'usage d'unités de taille relatives (em et %) [en], par Ian Hixie ; commenté en français par Tristan Nitot. Le Wiki de CSS-Discuss propose une série d'articles sur le sujet, en page d'accueil [en] (cf. "Sizing text").
- Karl Dubost nous guide dans la lecture de la norme et nous dit tout sur la propriété CSS width [avec] float [fr].
- Properly Using CSS and JavaScript in XHTML Documents [en], par Bob Clary.
- Des onglets de navigation en CSS [en] (non supporté par Netscape 4.7 (le contenu est néanmoins correctement affiché, sous la forme de puces)).
- Un tutoriel complet sur les menus en CSS [en], par Al Sparber.
- Liens vers des sites externes en CSS [en]. Cet article de Shirley E. Kaiser offre une bonne synthèse des différents moyens de réaliser des liens visuellement différenciés vers les sites externes d'un site donné.
- Plus de trente patrons CSS prêts à l'emploi [en], pour une mise en page en 1, 2 ou 3 colonnes ; par le Nemesis Project.
- Les mini-icônes et boutons en CSS :
- Listamatic [en], LE panorama complet des techniques pour styler des listes (avec le code, les exemples visuels et un tableau de support des navigateurs).
- Listutorial [en] est un tutoriel complet pour la création de listes stylées.
- Zoomer une image [fr] au passage de la souris sur l'image, uniquement via des CSS. Par Pascale Lambert-Charreteur.
- Des tableaux plus simples [fr], par Frédéric Cavazza.
- Des formulaires plus simples [fr], par Frédéric Cavazza.
- Méthodologie pour résoudre les problèmes d'affichage en CSS [fr].
Fournisseurs commerciaux compétants en matière de design web nouvelle génération
Les sociétés ici listées sont compétentes sur les techniques de design avancées avec des CSS.
- Alsacréations : "Alsacréations est un prestataire de choix spécialisé dans les petites structures et les sites Grand-Public. [...] L'accessibilité est un facteur essentiel de la réussite des sites Grand Public. C'est pour cela qu'il existe des Standards du Web et que nous essayons de les respecter...". Alsacréation propose par ailleurs de nombreux tutoriels CSS sur leur site.
- ceforweb [fr], centre de Formation à l'accessibilité et aux standards du Web. Le site web laisse présager une offre sérieuse sur la base de connaissances éprouvées.
L'avenir avec les CSS
Faq sur les CSS
1. CSS ?
"CSS" est l'abbréviation de l'expression anglophone "Cascading Style Sheet". Cette expression signifie littéralement des "Feuilles de style en cascades".
En français l'usage est de dire "les CSS". Par exemple
2. Quelle différence y-a-t'il entre les CSS1 et les CSS2 ?
[tentative de réponse à préciser]
Nous listons ici les apports principaux de CSS2 :
- CSS2 introduit des propriétés avancées de positionnement des éléments dans la page (en plus du positionnement statique existant, par défaut, dans CSS1, les positionnements relatifs, absolus, fixes)
- CSS2 améliore les règles d'écriture des cultures extra-occidentales (textes bidirectionnels, style de numérotage, marques de citation)
- CSS2 introduit les types de média, permettant une mise en forme différente du même contenu selon le type de média
- CSS2 introduit les "média paginés" (sorties sur imprimante) en plus des "média continus" (affichage dans un navigateur) : il devient possible de faire de la mise en page fine pour ces média
3. Quels navigateurs gèrent complètement CSS1 ?
- Opera 7 se targue de gérer complètement CSS1.
4. Quels navigateurs gèrent complètement CSS2 ?
Aucun navigateur ne semble gérer en totalité les CSS2. Trois navigateurs ambitionnent de les gérer et améliorent graduellement leur support : Konqueror (et dérivés), Mozilla (et dérivés), Opera.