Les CSS ont vu le jour en 1996. Elles ont été constamment remaniées, aujourd'hui on est invité à utiliser les CSS3.
Il existe trois méthodes pour appliquer des CSS à une page web :
<div style="color:blue;">…</div>
<head>
<style>
div{
color:blue;
}
</style>
</head>
Ce style sera appliqué à toutes les div contenues dans le document.
<link rel="stylesheet" href="css/style.css">
Le fichier CSS se compose d'un ensemble de règles qui seront appliquées aux balises du fichier HTML :
div{
color:blue;
}
p {
color:blue;
}
<head>
<link rel="stylesheet" href="css/style.css">
</head>
selecteur {propriété1 : valeur;
propriété2 : valeur;
...
}
Les classes class
et les identifiants id
permettent d’identifier les balises sur lesquelles on souhaite agir.
Les classes ont des identificateurs qui peuvent être utilisés sur plusieurs balises d’une même page alors que les id (identifiant) définissent une balise unique au sein d’une page (elles sont principalement utilisées pour le traitement d’une page par le langage JavaScript).
L’id est prioritaire sur la classe quelque soit l’ordre.
class
<balise class="mon-style">…</balise>
.mon-style {propriété1 : valeur;
propriété2 : valeur;
...
}
id
<balise id="mon-style">…</balise>
#mon-style {propriété1 : valeur;
propriété2 : valeur;
...
}
balise1 balise2: sélecteur universel, permet de sélectionner toutes les balises balise1 "espace" balise2 : Une balise contenue dans une autre.
Exemple :
p a {propriété1 : valeur;
propriété2 : valeur;
...
}
/* toutes balises de lien contenues dans un paragraphe */
balise1,balise2 : sélectionne toutes les balises.
Exemple :
article,section {propriété1 : valeur;
propriété2 : valeur;
...
}
/* toutes balises article et section */
balise1 + balise2 : un enchainement de balises, sélectionne la balise2 situé juste après la balise1.
Exemple :
article+section {propriété1 : valeur;
propriété2 : valeur;
...
}
/* toutes balises section situées juste après une balise article */
Pour plus d'infos
balise:hover : se produit lors du passage de la souris sur la balise.
Exemple :
a:hover {propriété1 : valeur;
propriété2 : valeur;
...
}
/* changement de style lors du passage de la souris sur les liens */
balise:active : se produit au clic de la souris sur la balise.
Exemple :
a:active {propriété1 : valeur;
propriété2 : valeur;
...
}
/* changement de style lors du clic sur le lien */
balise:focus : se produit lorsque la balise a le focus.
Exemple :
input:focus {propriété1 : valeur;
propriété2 : valeur;
...
}
/* changement de style lorsque le curseur est sur la balse input */
balise:visited : se produit lorsque l’élément à déjà été visité. Principalement utilisé avec la balise <a>
.
Exemple :
a:visited {propriété1 : valeur;
propriété2 : valeur;
...
}
/* changement de style lorsque le lien a déjà été visité */
Exemple :
Balise{
transition-property: color, width, height;
transition-duration: 3s;
}
Par défaut, agissent sur toutes les propriétés, on peut donc préciser les propriétés sur lesquelles doivent agir les transitions (dans l’exemple : la couleur, la largeur, la hauteur). Le deuxième paramètre indique le temps que durera la transition (dans l’exemple 3s), il peut être précisé en seconde (s) ou en milliseconde (ms).
Balise{
transition-property: color, width, height;
transition-duration: 3s;
transition-delay : 1s ;
}
On définit avec le dernier paramètre le temps avant le démarrage de la transition en seconde (s) ou en milliseconde (ms)
Il est possible de jouer sur la nature de la transition :
Balise{
transition-property: color, width, height;
transition-duration: 3s;
transition-delay : 1s ;
transition-timing-function : nom ;
}
Les fonctions possibles sont les suivantes :
Un exemple :
div {
width: 100px;
height: 100px;
background: red;
-webkit-transition: width 2s, height 4s; /* For Safari 3.1 to 6.0 */
transition: width 2s, height 4s;
}
div:hover {
width: 300px;
height: 300px;
}
Les médias queries permettent d’appliquer une feuille de style en fonction du support matériel qui l’affiche. On parle souvent de site web responsive design dans ce contexte.
Pour plus d'infos
Les FlexBox permettent d’organiser les blocs de contenu au sein d’une page.
Les anciennes méthodes utilisaient :
Les deux dernières citées sont encore couramment utilisées pour la structuration visuelle d’une page Web.
Faire le TP sur les flexbox