Langage CSS
Objectifs
On aborde ici la thématique du Web et particulièrement les principales notions liées aux langages HTML / CSS.
L'objectif ici est de vous faire découvrir comment le style visuel d'une page Web peut être décrit à l'aide des langages HTML / CSS
Le langage CSS
Définition
Le langage CSS (pour Cascading Style Sheets : feuilles de style en cascade) sert à appliquer un style visuel la page HTML : couleurs, taille du texte, positions relatives de blocs, etc...
Les balises de structure
Les balises HTML neutres de structure <div> </div>
et <span> </span>
servent à regrouper des éléments pour leur appliquer un style visuel (vous verrez cela dans le paragraphe portant sur le langage CSS).
Elément div
de structure
- L'élément
div
associé aux balises<div> </div>
est un élément dit neutre (sans rôle particulier) de typeblock
. On dit que les balises<div> </div>
sont des balises de structure.
Elément span
de structure
- L'élément
span
associé aux balises<span> </span>
est un élément dit neutre (sans rôle particulier) de typeinline
. Les balises<span> </span>
sont aussi des balises dites de structure.
Les balises structurantes de l'HTML5
On peut noter la présence, depuis l'HTML 5, de balises permettant de mieux structurer une page Web :
Balises | Détails |
---|---|
<header> </header> |
Section d'introduction du document (en-tête de page) |
<main> </main> |
Contenu principal du body |
<footer> </footer> |
Section de conclusion d'une section (pied de page) |
<section> </section> |
Section générique regroupant un même sujet |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
|
Attributs id
et class
Définition
En HTML, il est possible d'ajouter des attributs id
et / ou class
aux balises.
Exemple :
1 2 3 4 5 6 7 |
|
- La valeur d'un attribut
id
doit être unique dans la page HTML afin d'identifier de façon unique un élément de la page. - La valeur d'un attribut
class
contient un nom (ou plusieurs espacés par des virgules) qui va permettre d'étiqueter autant d'éléments que souhaité dans la page.
La valeur de ces deux attributs sera, entre autre, utilisée afin :
- de créer si besoin des liens relatifs pointant sur ces identifiants ;
- d'imposer un style graphique aux éléments associés depuis le langage CSS.
Lien relatif sur un id
Définition
La présence d'attributs id
dans les balises permet également de créer si besoin des liens relatifs pointant sur ces identifiants.
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>Liens vers id</title>
</head>
<body>
<header>
<nav>
<a href="index.html#1"> Vers la section 1</a>
<br/>
<a href="index.html#2"> Vers la section 2</a>
</nav>
</header>
<main>
<section id="1">
<h2> Section 1 </h2>
<p> Bla bla bla </p>
</section>
<section id="2">
<h2> Section 2 </h2>
<p> Blo blo blo </p>
</section>
</main>
<footer>
Pied de page
</footer>
</body>
</html>
Application
Exercice 2.1
Dans VSCodium :
-
Créer un dossier intitulé Exercice_2_1 en cliquant sur l'icone
.
-
Dans le dossier Exercice_2_1, créer un fichier nommé index.html en cliquant sur l'icone
.
Copier-coller le code HTML ci-dessous dans le fichier index.html :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
Ouvrir le fichier index.html avec le navigateur Firefox.
A présent, dans VSCodium, modifier le code HTML présent dans le fichier index.html afin d'ajouter deux autres liens relatifs afin d'obtenir le visuel ci-dessous :
Retour au langage CSS
Définition
Le code CSS est le code qui se situe entre les balises <style> </style>
(contenues dans l'élément head
) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
|
Rendu de la page :
Application
Exercice 2.2
Dans VSCodium :
-
Créer un dossier intitulé Exercice_2_2 en cliquant sur l'icone
.
-
Dans le dossier Exercice_2_2, créer un fichier nommé index.html en cliquant sur l'icone
.
Copier-coller le code HTML ci-dessous dans le fichier index.html :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
|
Ouvrir le fichier index.html avec le navigateur Firefox.
A présent, dans VSCodium, modifier le code HTML afin d'ajouter un paragraphe associé à l'identifiant para
et y ajouter le style suivant :
- police de couleur blanche (white) ;
- arrière-plan de couleur bleu (blue).
A présent, dans VSCodium, modifier le code HTML afin d'ajouter deux paragraphes associés à la classe para_italique
et y ajouter le style suivant :
- police en italique (à l'aide de la propriété
font-style: italic;
)
A présent, dans VSCodium, modifier le code HTML afin de modifier la couleur du titre. Pour cela voici ici un selecteur de couleur permettant d'obtenir le code hexadécimal de la couleur souhaitée (genre #D6F12C).
Règle CSS
Définition
Une règle CSS est caractérisée par deux principaux éléments :
- Un sélecteur de balises permettant de préciser à quelles balises du document le style s'applique ;
- Une déclaration de style, définie entre accolades, permettant de préciser le style à appliquer aux balises sélectionnées sous la forme de couples propriété / valeur.
A noter :
- un symbole
#
dans le sélecteur fait référence à un attribut id ; - un symbole
.
dans le sélecteur fait référence à un attribut class.
La description des règles du code CSS est donnée ci-dessous :
La règle CSS ci-dessous indique que l'élément associé à l'id
de valeur titre
a une couleur d'arrière-plan spécifique (ici vert clair).
#titre{
background-color : #9F003D;
}
A noter qu'ici la couleur est ici décrite en hexadécimal sous la forme de trois octets décrivant respectivement les composantes rouge, verte et bleue de la couleur souhaitée.
La règle CSS ci-dessous indique que l'ensemble des éléments associés à la class
de valeur aime
ont une couleur de police bleue.
.aime{
color: blue;
}
La règle CSS ci-dessous indique que l'ensemble des éléments associés à la class
de valeur beurk
ont une couleur d'arrière-plan rouge :
.beurk{
background-color : red
}
La règle CSS ci-dessous indique que tous les éléments p
ont un arrière-plan vert et un texte en gras :
p{
background-color : green;
font-weight: bold;
}
Application
Exercice 2.3
Dans VSCodium :
-
Créer un dossier intitulé Exercice_2_3 en cliquant sur l'icone
.
-
Dans le dossier Exercice_2_3, créer un fichier nommé index.html en cliquant sur l'icone
.
Copier-coller le code HTML / CSS ci-dessous dans le fichier index.html.
Compléter ce code HTML / CSS ci-dessous afin de lui appliquer le style visuel ci-dessous.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
|
Dans VSCodium :
- Dans le dossier Exercice_2_3, créer un fichier nommé page1.html et un fichier nommé page2.html en cliquant sur l'icone
.
Ouvrir le fichier index.html avec le navigateur Firefox. Vérifier le bon fonctionnement des deux liens hypertextes.
Feuille de style CSS
Définition
Il est possible d'appliquer ce style à d'autres pages d'un site en isolant le code CSS dans un fichier dédié (ici le fichier style.css
nommé feuille de style) puis en utilisant la balise orpheline <link href="..." rel="stylesheet" type="text/css"/>
dans l'entête de toutes les pages HTML du site.
Exemple de fichier CSS :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
Fichier HTML associé :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
Application
Exercice 2.4
Dans VSCodium :
-
Créer un dossier intitulé Exercice_2_4 en cliquant sur l'icone
.
-
Dans le dossier Exercice_2_4, créer un fichier nommé index.html et un fichier nommé style.css en cliquant sur l'icone
.
Isoler le code CSS de la page HTML/CSS dessous dans le fichier style.css
. Ajouter la balise orpheline <link href="style.css" rel="stylesheet" type="text/css"/>
dans le fichier index.html
.
Ouvrir le fichier index.html avec le navigateur Firefox afin de vérifier si le style visuel imposé par le code CSS est bien appliqué à la page Web.
Code Html/Css
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
|
Exemples de propriétés CSS
Voici, ci-dessous, une liste clairement non exhaustive de certaines propriétés CSS et les valeurs possibles associées.
Il existe beaucoup d'autres propriétés (voir ici par exemple), ce cours ne se veut volontairement pas exhaustif, car le programme de SNT ne l'impose pas.
Propriétés | Exemples de valeur | Description |
---|---|---|
color |
#00ff00 |
couleur du texte |
green |
couleur du texte | |
background-color |
#ff0000 |
couleur de fond |
red |
couleur de fond | |
rgb(255,0,0) |
couleur de fond | |
border-width |
3px |
épaisseur du trait de bordure |
border-style |
dotted |
trait de bordure en pointillés |
solid |
trait de bordure plein | |
dashed |
trait de bordure en discontinu | |
border-color |
#00ff00 |
couleur de bordure |
border |
1px dashed red |
bordure trait discontinu couleur rouge 1px d'épaisseur |
font-weight |
normal |
graisse de police normal |
light |
graisse de police fine | |
bold |
graisse de police gras | |
font-style |
normal |
style normal |
italic |
style italique | |
font-family |
sans-serif |
|
avec-serif |
||
text-align |
center |
texte centré |
left |
texte gauche | |
right |
texte droite | |
justify |
texte centré | |
font-size |
20px |
taille de référence de 20px |
3rem |
3 fois la taille de référence | |
margin |
5px |
5 pixels de marge |
padding |
3px |
3 pixels d'écart |
Taille de police
Définition
En ce qui concerne la taille de police des textes présents dans une page, il est possible :
- d'imposer une taille de police de référence à la page (ici à la ligne 8, on impose une taille de
30px
pour la taille de police de référence) différente de celle par défaut (qui est de16px
). - puis de choisir la taille de police des autres éléments relativement à cette taille de référence (ici à la ligne 11, on spécifie que les éléments
div
comporteront des textes en police3rem
soit 3 plus grande que la police de référence).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
Application
Exercice 2.5
Comprendre et tester le code précédent.
Modifier le code précédent afin d'ajouter une balise div
dont la police est 5 fois plus grande que la taille de référence.
Margin / Padding
Définition
Tous les éléments HTML sont constitués d'une "boite rectangulaire" qui permet de délimiter son contenu et son éloignement avec d'autres éléments HTML.
Sur la représentation ci-dessus :
- le cadre noir le plus intérieur correspond au contenu de l'élément ;
- le cadre rouge est la bordure de l'élément (que le code CSS peut permettre de faire apparaître) ;
- le cadre noir le plus extérieur correspond à zone à partir de laquelle un autre élément pourra être présent.
La zone entre le contenu et la bordure est la zone d'ajustement que la propriété padding
permet de modifier.
La zone au-delà de la bordure est la zone de marge que la propriété margin
permet de modifier.
Il est possible grâce aux propriétés comme padding-top
, margin-left
, etc... de ne modifier qu'une des composantes de la zone d'ajustement ou de marge.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
Application
Exercice 2.6
Comprendre et tester le code précédent.
Compléter le code HTML / CSS ci-dessous afin d'obtenir le visuel souhaité (remarque les propriétés margin
et padding
auront ici des valeurs de 0px
, 10px
ou de 20px
.
Code HTML / CSS
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>Propriétés margin / padding</title>
<style>
...
</style>
</head>
<body>
<div class="zone">
<div class="element">
bla bla
</div>
<div class="element2">
blo blo
</div>
...
</div>
</body>
</html>
Rendu visuel attendu
Grille
Définition
Le code CSS permet aussi de positionner des éléments sur une grille :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
|
L'élément div
associé à la classe zone
possède :
- la propriété
display: grid
ce qui signifie que les éléments que contient cet élémentdiv
(ici les élémentsdiv
associés à la classeélément
) seront affichés suivant un principe de grille, chacun correspondant à une cellule de la grille. - la propriété
grid-template-columns: 25% 50% 25%
qui signifie que les lignes de la grille seront composées de 3 cellules (la première d'une largeur de 25% du conteneur, la seconde d'une largeur de 50% du conteneur et la dernière de 25% de la largeur du conteneur). Dans l'exemple, seules quatre cellules apparaissent au total, car l'élémentdiv
associé à la classezone
ne contient que 4 éléments.
Application
Exercice 2.7
Comprendre et tester le code précédent.
Modifier le code ci-dessous afin de créer une grille de 5 colonnes en faisant apparaître 12 cellules avec le texte Cellule X
(X
étant le numéro de la cellule) selon le rendu visuel ci-dessous :
Remarque : La propriété margin-left
devra aussi être utilisée.
Rendu visuel attendu
Code à modifier
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>Mise en place d'une grille</title>
<style>
body{
width: 80%;
margin: 10px auto;
}
.zone{
border: 3px solid red;
margin : 10px;
padding: 20px;
display: grid;
grid-template-columns: 25% 50% 25%;
}
.element{
border: 2px dotted black;
margin-bottom : 5px;
padding: 20px;
}
</style>
</head>
<body>
<div class="zone">
<div class="element">
Zone 1
</div>
<div class="element">
Zone 2
</div>
<div class="element">
Zone 3
</div>
<div class="element">
Zone 4
</div>
<div class="element">
Zone 5
</div>
<div class="element">
Zone 6
</div>
<div class="element">
Zone 7
</div>
</div>
</body>
</html>
Exercice 2.8
Proposer un code CSS permettant d'obtenir le rendu visuel ci-dessous à partir du code HTML suivant :
Code HTML
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>Grille dans une grille</title>
<link href="style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div class="grille_principale">
<div class="element">
Bla bla bla
</div>
<div class="grille">
<div class="element">
Blo blo blo
</div>
<div class="element">
Blo blo blo
</div>
<div class="element">
Blo blo blo
</div>
<div class="element">
Blo blo blo
</div>
</div>
</div>
</body>
</html>
Rendu visuel attendu
Code CSS à compléter
html{
font-family: sans-serif;
font-size: 12px;
}
body{
width: 80%;
margin: auto;
}
.grille_principale{
...
}
.grille{
...
}
.element{
...
}