Adloun

Premiers pas en CSS

Cours · CSS : mettre en forme le Web (école d'ingénieur), chapitre 1 · école d'ingénieur, informatique · le début du chapitre, la suite sur Adloun

À la fin du livre HTML, le site de la Librairie du Campus était complet : six pages valides, sémantiques, accessibles. Ouvrons pourtant sa page d'accueil dans un navigateur : du texte noir en police à empattements sur fond blanc, des liens bleus soulignés, des listes à puces collées au bord gauche. Tout y est, mais rien n'a d'allure. La page a l'apparence que le navigateur donne par défaut à n'importe quel document.

Ce chapitre ajoute à la librairie sa première feuille de style : un fichier, écrit dans le langage CSS, qui dit au navigateur comment présenter les éléments que HTML a décrits. Quelques lignes suffiront à lui donner une police, des couleurs et un en-tête. Surtout, nous apprendrons à lire ce que le navigateur fait de ces lignes, car il ne signale jamais une erreur de CSS : il l'ignore en silence.

Objectifs du chapitre

  • Comprendre pourquoi la présentation est séparée de la structure, et d'où vient CSS.
  • Lire et écrire une règle : sélecteur, bloc de déclarations, propriété, valeur.
  • Attacher une feuille de style à une page, et savoir pourquoi la feuille externe est la bonne méthode.
  • Connaître la feuille de style par défaut du navigateur.
  • Donner à la Librairie du Campus sa première feuille : police, couleurs de la charte, en-tête.
  • Utiliser les outils de développement (onglets Styles et Computed) et le vérificateur stylelint pour trouver une déclaration ignorée.

1.1 Structure et présentation

Un document HTML dit ce qu'est chaque morceau du contenu : ceci est le titre principal, ceci un paragraphe, ceci une liste de liens de navigation. Il ne dit pas de quelle couleur est le titre, à quelle distance du bord commence le paragraphe ou si la navigation s'affiche en ligne ou en colonne. Ces décisions relèvent de la présentation, et elles sont confiées à un second langage : CSS, Cascading Style Sheets, les feuilles de style en cascade.

Définition 1.1Feuille de style

Une feuille de style est une liste de règles écrites en CSS. Chaque règle désigne des éléments de la page et leur attribue des valeurs de propriétés de présentation : couleur, police, taille, marges, disposition… La même feuille peut s'appliquer à toutes les pages d'un site.

Cette séparation a des conséquences très concrètes.

Repère historique : Håkon Wium Lie et les feuilles de style

Les premières pages du Web, au début des années 1990, n'avaient aucun moyen de choisir leur apparence : chaque navigateur décidait seul. Les auteurs réclamaient des couleurs et des polices ; les fabricants de navigateurs ajoutaient des balises de présentation à HTML (<font>, <center>…), mélangeant structure et décor. En octobre 1994, Håkon Wium Lie, qui travaille alors au CERN avec Tim Berners-Lee, propose les Cascading HTML Style Sheets. Bert Bos le rejoint, et le W3C publie CSS niveau 1 en décembre 1996 : polices, couleurs, marges, alignement du texte. CSS 2 (1998) ajoute le positionnement et les médias (écran, impression) ; sa révision CSS 2.1 devient la référence en 2011.

Depuis, il n'y a plus de « CSS 4 » : le langage est découpé en modules indépendants (Couleurs, Sélecteurs, Flexbox, Grid, Cascade…), chacun avec son propre niveau. On appelle « CSS 3 » l'ensemble des modules apparus après CSS 2.1. Chaque navigateur implémente un module dès qu'il est assez stable, ce qui explique que l'on vérifie parfois la prise en charge d'une propriété récente.

1.2 Anatomie d'une règle

Voici notre première feuille de style, enregistrée dans un fichier style.css.


/* Ma première feuille de style */
body {
  font-family: system-ui, sans-serif;
  color: #222;
  background-color: #faf8f5;
}

h1 {
  color: #1f3a68;
  font-family: Georgia, serif;
}

Elle est reliée à une page minimale par un élément <link> placé dans l'en-tête.


<!DOCTYPE html>
<html lang="fr">
<head>
  <meta charset="utf-8">
  <title>Ma première feuille de style</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <h1>La Librairie du Campus</h1>
  <p>Manuels, essais et romans pour les étudiants du Quartier latin.</p>
  <p>Ouvert du lundi au samedi, de 9 h à 19 h.</p>
</body>
</html>

Le navigateur affiche alors le texte en police système, gris très foncé sur un fond crème, et le titre en bleu nuit avec une police à empattements :

Illustration

La feuille contient deux règles. Décomposons la seconde.

Définition 1.2Règle CSS

Une règle est formée d'un sélecteur, qui désigne les éléments concernés, suivi d'un bloc de déclarations entre accolades. Chaque déclaration associe une valeur à une propriété : le nom de la propriété, deux-points, la valeur, puis un point-virgule.

Ici, le sélecteur h1 désigne tous les titres de premier niveau de la page. La première règle, body, désigne le corps du document : sa police, sa couleur de texte et son fond. Nous verrons au chapitre 3 pourquoi les paragraphes, qui n'ont aucune règle, prennent quand même la police et la couleur du body : c'est l'héritage.

Proposition 1.3Écriture d'une règle
  • Les espaces, tabulations et retours à la ligne entre les éléments d'une règle sont libres : h1{color:#1f3a68} est valide. Par convention (et pour stylelint), on écrit une déclaration par ligne, indentée de deux espaces, avec un espace après les deux-points.
  • Le point-virgule sépare les déclarations ; il est facultatif après la dernière, mais on le met toujours, pour pouvoir ajouter une ligne sans risque.
  • Les noms de propriétés et les mots-clés ne tiennent pas compte de la casse (COLOR vaut color) ; on les écrit en minuscules. Les noms de polices composés de plusieurs mots s'écrivent entre guillemets : "Times New Roman".
  • Un sélecteur peut en grouper plusieurs, séparés par des virgules : h1, h2 { … } s'applique aux deux sortes de titres.

La suite du cours est sur Adloun

Le chapitre en entier, formules et figures comprises, avec le tuteur, les fiches, les QCM et les exercices.

Lire la suite du cours

En accès libre, sans inscription.

Exercices corrigés de ce chapitre

Lire la suite du cours →