Je vous avais averti dès le début de ce cours : nous allons apprendre deux langages. Nous avons déjà bien entamé notre découverte du HTML, même s'il reste encore de nombreuses choses à apprendre (nous y reviendrons dans quelques chapitres). En revanche, il est temps maintenant de nous intéresser au CSS.
CSS (
Cascading Style Sheets), c'est cet autre langage qui vient compléter le HTML.
Vous vous souvenez de son rôle ?
Gérer la mise en forme de votre site.
Petit rappel : à quoi sert CSS ?
CSS ? C'est lui qui vous permet de choisir la couleur de votre texte.
Lui qui vous permet de sélectionner la police utilisée sur votre site.
Lui encore qui permet de définir la taille du texte, les bordures, le fond...
Et aussi, c'est lui qui permet de faire la mise en page de votre site. Vous pourrez dire : je veux que mon menu soit à gauche et occupe telle largeur, que l'en-tête de mon site soit calé en haut et qu'il soit toujours visible, etc.
Souvenez-vous de ce petit schéma que nous avions vu dès le premier chapitre :
Grâce au HTML, nous avons pu rédiger le contenu de notre site, mais c'est brut de décoffrage. Le CSS le complète pour mettre tout cela en forme et donner au contenu l'apparence que l'on souhaite.
CSS : des débuts difficiles
Il faut savoir qu'au tout début du Web, CSS n'existait pas. En fait, au départ, il n'y avait que le langage HTML.
Le HTML est né en 1991, et CSS est né en 1996. Alors, vous vous dites sûrement : comment faisait-on la mise en forme de 1991 à 1996 ? Eh bien, uniquement en HTML ! Il y avait en effet des balises HTML dédiée à la mise en forme.
<font color="#aab1c3"> par exemple, permettait de définir la couleur du texte.
Cependant, les pages HTML commençaient à devenir assez complexes. Il y avait de plus en plus de balises et c'était un joyeux mélange entre le fond et la forme, qui rendait la mise à jour des pages web de plus en plus complexe. C'est pour cela que l'on a créé le langage CSS.
Cependant, le CSS n'a pas été adopté par les webmasters immédiatement, loin de là. Il fallait se défaire de certaines mauvaises habitudes, et ça a pris du temps. Encore aujourd'hui on peut trouver des sites web avec des vieilles balises HTML de mise en forme qui n'existent plus, comme
<font> !
CSS : le support des navigateurs
Tout comme le HTML, le CSS a évolué. Je vous avais indiqué qu'il y avait 4 versions importantes de CSS :
- CSS 1
- CSS 2.0
- CSS 2.1
- CSS 3
En fait, la version CSS 3 n'est pas encore totalement finalisée (ce n'est pas encore une version officielle). Cependant, elle est bien avancée et déjà bien supportée par de nombreux navigateurs aujourd'hui, ce qui fait qu'on peut déjà s'en servir.
Il serait dommage de passer à côté, car CSS 3 ajoute de nombreuses fonctionnalités à CSS (il y a le double de fonctionnalités par rapport à CSS 2.1 !). Nous nous baserons donc dans ce cours sur CSS 3, qui reprend et complète la plupart des fonctionnalités de CSS 2.1.
Ce sont les navigateurs web qui font le travail le plus complexe : ils doivent
lire le code CSS et
comprendre comment afficher la page.
Au début des années 2000, Internet Explorer était le navigateur le plus répandu, mais son support du CSS est resté longtemps assez médiocre (pour ne pas dire carrément mauvais

). C'était la grande époque de la version 6 (IE6), hélas encore utilisée par une petite partie des internautes aujourd'hui (heureusement, cette proportion tend à diminuer).
Depuis, de nombreux navigateurs sont arrivés et ont chahuté Internet Explorer : Mozilla Firefox bien sûr, mais aussi Google Chrome. Et je ne vous parle pas du succès des Mac et iPhone avec leur navigateur Safari. Cela a incité Microsoft a réagir, qui a publié (après une longue période d'inactivité) IE 7, puis IE 8 et IE 9. On parle déjà de IE 10.
Bon ton cours d'histoire c'est bien joli, mais en quoi ça me concerne aujourd'hui ?
Que faut-il retenir de tout ça ? Que les navigateurs ne connaissent pas toutes les propriétés CSS qui existent. Plus le navigateur est vieux, moins il connaît de fonctionnalités CSS.
Je vais vous présenter dans ce cours un certain nombre de fonctionnalités de CSS qui ne fonctionnent pas forcément sur les navigateurs les plus vieux. Je ne peux pas l'éviter, c'est comme ça :
aucun navigateur ne connaît parfaitement toutes les fonctionnalités CSS de toute façon ! Au pire, si le navigateur ne connaît pas une fonctionnalité de CSS, il l'ignore et ne met pas en forme, mais ça ne fait pas planter votre page, ce qui fait que celle-ci sera toujours lisible.
Je vous recommande fortement de mettre dans vos favoris les sites web
www.caniuse.com et
normansblog.de qui affichent des tables de compatibilité des fonctionnalités de HTML et CSS en fonction des différents navigateurs (et de leurs différentes versions). Regardez en particulier les
tables de compatibilité pour CSS de caniuse.com.