1. Objectif de l’activité
-
Apprendre à concevoir une page web en utilisant HTML5
-
Apprendre à réaliser le disign d’une page web en utilisant CCS3
-
Réaliser une page web d’affichage de résultats de mesures d’une balise de radioactivité dans une page web statique.
2. CSS3
Le CSS est le langage de base permettant de mettre en forme les pages webs qui consituent les sites internet. Il est simple et se maitrise assez vite. Découvrons pourquoi le CSS3 est incontournable, quels sont ses avantages et quels sont ses limites.
2.1. A quoi sert CSS3 ?
CSS est utilisé pour définir des styles pour les pages web, y compris la conception, la mise en page et les variations de l’affichage pour différents appareils et tailles d’écran.
Le langage HTML n’a jamais été destiné à contenir des balises pour le formatage d’une page Web !
HTML a été créé pour décrire le contenu d’une page Web.
<h1> Ceci est une rubrique </h1>
<p> Ceci est un paragraphe. </p>
Avec HTML3.2, certaines balise de formatage sont apparues comme
avec des attributs de couleur pour changer la police et la couleur du texte. Le développement de grands sites Web, où les informations des polices et la couleur ont été ajoutés à chaque page, est devenu un processus long et coûteux. De plus, la "relookage" d’un site nécessitait alors de reprendre tout le code du site.<font>
Pour résoudre ce problème, le World Wide Web Consortium (W3C) créé CSS.
Désormais :
|
exemple :
2.2. Avantages
-
Gain en productivité : CSS3 dispose de nombreux effets visuels comme on peut le constater avec l’exemple précédant. Les bords arrondis des éléments étaient autrefois difficiles à obtenir, il fallait définir plusieurs images et coder de nombreuses règles CSS à appliquer au code HTML. CSS3 à introduit une nouvelle règle appelée
qui permet d’appliquer des arrondis à un élément. Cette propriété a en plus l’avantage de permettre d’appliquer un arrondi particulier pour chaque coin de l’élément. On peut appliquer un arrondi deborder-radius
en haut à gauche,5px
en haut à droite,10px
en bas à droite et5px
en bas à gauche ou simplement un arrondi de10px
pour les quatre coins.10px
-
Le gain de maintenance : Les définitions de style sont généralement enregistrées dans des fichiers
externes. Avec un fichier de feuille de style externe, on peut changer l’apparence d’un site Web entier en modifiant un seul fichier !.css
2.3. Inconvénients
Les possibilités qu’offrent le langage sont très grandes et il est difficile pour un développeur de toutes les maitriser.
2.4. Les langages complémentaires au CSS3
D’autre langage, complémentaire au HTML5 seront nécessaire pour réaliser de belles pages web. Il pourront-être soit directement intégré dans la page soit écrits sur une autre page et reliés à la page codée en HTML5. Parmi ces principaux langages, ont retrouve :
|
2.5. Outils de développement
Si un simple bloc-note peut suffire pour coder en HTML5 ou CSS3, d’autres alternatives existent et apportent souvent un meilleur confort, en premier lieu, la coloration syntaxique, l’auto-complétion, le formatage du code (gestion des indentations) et la gestion du jeu de caractères (utf-8).
2.5.1. Editeurs payant :
-
Linux/Win/Mac : webstorm (gratuit pour prof et étudiant) https://www.jetbrains.com/webstorm/
-
mac : bbedit (éditeur historique) https://www.barebones.com/products/bbedit/
-
Linux/Win/Mac : sublime text 3 https://www.sublimetext.com
2.5.2. Editeurs gratuits :
-
Linux/Win/Mac : brackets http://brackets.io/
-
Linux/Win/Mac : visual studio https://code.visualstudio.com/
-
Linux/Win/Mac : atom https://atom.io/
-
mac : textmate 2 : https://github.com/textmate/textmate
-
Win : notepad++ https://notepad-plus-plus.org/fr/
2.5.3. Editeurs "rustiques" :
-
Linux/Win/Mac : emacs (Attention, c’est puissant mais déroutant. Il y a 20 ans, je lisais mon mail avec) https://www.gnu.org/software/emacs/
-
Linux/Win/Mac : vim (Attention, c’est déroutant mais puissant) https://www.vim.org/
2.5.4. IDE online https://repl.it/
Pour un premier exercice, nous allons utiliser un outil de développement online https://repl.it/. Repl est une interface de développement web qui permet de coder en ligne.
Cliquer sur le lien afin d’accéder à la page web https://repl.it/. Cliquer ensuite sur + new repl en haut à gauche de la page, sélectionner HTML, CSS, JS. Cliquer sur Create repl.
2.5.5. Documentation
On trouve beaucoup de tutoriels et de cours sur internet concernant le CSS. Il faut cependant faire attention de bien avoir à faire à la dernière version CSS3.
Parmis les meilleurs, on peut citer :
3. La syntaxe
La définition des styles repose sur une syntaxe simple :
-
Selecteur : il s’agit d’une balise HTML, d’un de ses attributs, d’un élément HTML idendifié (le nom donné à une balise grace à son attribut
) ou à tout élément HTML appartenant à une même classe (attributid
).class
-
Déclaration :
-
Le bloc de déclaration contient une ou plusieurs déclarations séparées par des point-virgules.
-
Chaque déclaration comprend un nom de propriété CSS et une valeur, séparés par deux points.
-
Une déclaration CSS se termine toujours par un point-virgule, et les blocs de déclaration sont entourés par des accolades.
-
p {
color: red;
text-align: center;
}
Dans cet exemple, tous les paragraphes (balises
) de la page html où ce css sera appliqué seront alignés au centre, avec une couleur de texte en rouge :<p>
3.1. Travail à faire : premier test
-
Saisir le code suivant et observer le résultat dans un navigateur.
<!DOCTYPE html>
<html>
<head>
<style>
p {
color: red;
text-align: center;
}
</style>
</head>
<body>
<p>Hello World!</p>
<p>Le style des paragraphes a été modifié par un CSS.</p>
</body>
</html>
3.2. Les commentaires
Les commentaires sont utilisés pour expliquer le code et doivent aider à le comprendre lorsque l’on cherchera à le modifier ultérieurement. Il est important de commenter efficacement son code, quelque soit le langage utilisé.
Les commentaires css sont ignorés par les navigateurs.
Un commentaire CSS commence par |
p {
color: red;
/* Ceci est un commentaire sur une seule ligne */
text-align: center;
}
/* Ceci est un
commentaire
sur plusieurs lignes */
3.3. Les sélecteurs
Les sélecteurs CSS sont utilisés pour identifier dans la page web les éléments HTML qu’on souhaite modifier.
On peut diviser les sélecteurs CSS en cinq catégories:
-
sélecteurs simples
-
Sélecteurs combinés
-
Sélecteurs pseudo-classe
-
Sélecteurs pseudo-éléments (sélectionner un style pour une partie d’un élément)
-
Sélecteurs d’attribut (éléments de sélection en fonction d’un attribut ou valeur d’attribut)
3.3.1. Selecteurs simples
Nous avons précédemment testé l’utilisation d’un sélecteur simple pour redéfinir le style d’une balise HTML. Dans ce cas, toutes les balises de la page sont affectées identiquement. Pour modifier une balise spécifique, il faut l’identifier :
Le sélecteur d’ID css
|
3.3.2. Travail à faire : Le sélecteur d’ID
-
Saisir le code suivant et observer le résultat dans un navigateur.
<!DOCTYPE html>
<html>
<head>
<style>
#para1 {
text-align: center;
color: red;
}
</style>
</head>
<body>
<p id="para1">Hello World!</p>
<p>Ce paragraphe ne sera pas affecter par le style définit par le sélecteur #para1</p>
</body>
</html>
Le sélecteur de classe css
Dans cet exemple, tous les éléments HTML avec class = "center_red" sera rouge et aligné au centre:
|
3.3.3. Travail à faire : Le sélecteur de classe
-
Saisir le code suivant et observer le résultat dans un navigateur.
<!DOCTYPE html>
<html>
<head>
<style>
.center_red {
text-align: center;
color: red;
}
</style>
</head>
<body>
<h1 class="center_red">Ce titre est centré et en rouge</h1>
<p class="center_red">Ce paragraphe est centré et en rouge. C'est la même classe qui est appliquée au titre et au paragraphe.</p>
</body>
</html>
Le sélecteur universel CSS
Le sélecteur universel (*) sélectionne tous les éléments HTML de la page.
|
3.3.4. Travail à faire : Le sélecteur universel
-
Saisir le code suivant et observer le résultat dans un navigateur.
<!DOCTYPE html>
<html>
<head>
<style>
* {
text-align: center;
color: blue;
}
</style>
</head>
<body>
<h1>Hello world!</h1>
<p>Tous les éléments de la page sont affectés par le style définit par sélecteur universel.</p>
<p id="para1">Même ce paragraphe </p>
<p>et celui-ci aussi !</p>
</body>
</html>
3.3.5. Les sélecteurs regroupés et combinés
Les sélecteurs regroupement de sélecteurs sélectionnent tous les éléments HTML avec les mêmes définitions de style. Dans le code CSS suivant les éléments
Il est alors préférable de les regrouper dans une même définition afin de minimiser le code. Pour regrouper les sélecteurs, séparer chaque sélecteur par une virgule :
|
3.3.6. Travail à faire : Regroupement et combinaison de sélecteurs
-
Saisir le code suivant et observer le résultat dans un navigateur.
<!DOCTYPE html>
<html>
<head>
<style>
h1, h2, p {
text-align: center;
color: red;
}
p {
font-family: Arial, Helvetica, sans-serif;
}
</style>
</head>
<body>
<h1>Hello World!</h1>
<h2>Ici un titre de niveau 2</h2>
<p>Ici un paragraphe. Tous les styles sont identiques et définit dans un regroupement.
Les paragraphes combinent deux styles.
</p>
</body>
</html>
3.3.7. Synthèse sur les sélecteurs
Sélecteur | Exemple | Description |
---|---|---|
|
|
Sélectionne tous les éléments avec |
|
|
Sélectionne l’élément avec |
|
|
Sélectionne tous les éléments |
|
|
Sélectionne tous les |
|
|
Sélectionne tous les |
4. Insérer un css
Lorsqu’un navigateur lit une feuille de style, il forme le document HTML selon les informations qu’elle contient.
Il y a trois façons d’insérer une feuille de style:
-
CSS interne
-
CSS en ligne
-
CSS externe
4.1. CSS interne
|
4.2. CSS en ligne
Exemple
|
4.3. CSS externe
Exemple
|
4.3.1. Travail à faire : Feuille de style externe
-
Saisir le code suivant et observer le résultat dans un navigateur.
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<h1>Titre principal</h1>
<p>Un paragraphe.</p>
</body>
</html>
body {
background-color: lightblue;
}
h1 {
color: navy;
margin-left: 20px;
}
5. Les principales propriétés CSS
L’ensemble des propriétés CSS sont listées et documentées ici : https://www.w3schools.com/cssref/default.asp
Les propriétés CSS sont trop nombreuses pour que ce cours puisse toutes les explorer. Nous nous contenterons des principales.
5.1. L’arrière plan d’un élément
Il existe des propriétés de base CSS pour définir les effets de fond pour les éléments.
propriétés de fond CSS:
-
Couleur de l’arrière plan
-
Image de fond
-
Répétition du fond
-
comportement de l’arrière plan
-
Position d’arrière-plan
5.1.1. Couleur de l’arrière plan : background-color
La propriété La couleur d’arrière-plan d’une page est définie comme suit: Exemple
|
Avec CSS, une couleur est le plus souvent définie par:
Liste complète des valeurs de couleurs possibles : https://www.w3schools.com/cssref/css_colors_legal.asp. |
5.1.2. Travail à faire : Couleur de fond des éléments
-
Saisir le code suivant et observer le résultat dans un navigateur.
<!DOCTYPE html>
<html>
<head>
<style>
h1 {
background-color: green;
}
div {
background-color: lightblue;
}
p {
background-color: yellow;
}
</style>
</head>
<body>
<h1>Exemple d'utilisation de la propriété background-color</h1>
<div>
Ce texte est à l'intérieur d'une balise div (division).
<p>Ce texte est un nouveau paragraphe dans la division mais on a définit un background-color spécifique pour les paragraphe !</p>
Ce texte est encore dans la division.
</div>
</body>
</html>
5.1.3. Image d’arrière plan : background-image
La propriété Par défaut, l’image est répétée de sorte qu’elle couvre l’élément entier. L’image d’arrière-plan d’une page peut être définie comme ceci: Exemple
|
5.1.4. Travail à faire : Image de fond
-
Télécharger l’image suivante et insérer la en fond de page dans une page web :
5.1.5. Répétition de l’image d’arrière plan : background-repeat
Par défaut, la propriété
|
Certaines images ne doivent être répétées que horizontalement ou verticalement pour ne pas apparaitre de façon étrange comme ceci:
body {
background-image: url("gradient_bg.png");
}
Si l’image ci-dessus est répétée seulement horizontalement (
), l’arrière-plan sera mieux:background-repeat: repeat-x;
body {
background-image: url("gradient_bg.png");
background-repeat: repeat-x;
}
On pourra parfois ne pas souhaiter répéter l’image d’arrière-plan.
/*Montrer l'image d'arrière-plan une seule fois:*/
body {
background-image: url("img_tree.png");
background-repeat: no-repeat;
}
5.1.6. Position de l’arrière-plan : background-position
La propriété
Exemple
|
5.1.7. Comportement de l’image d’arrière-plan : background-attachment
La propriété Les valeur qu’elle peut prendre sont :
Exemple
|
Tester :
5.1.8. Raccourci des propriétés de l’arrière plan
Pour raccourcir le code, il est également possible de spécifier toutes les propriétés d’arrière-plan dans une propriété unique. Ceci est appelé une propriété raccourcie. La propriété Exemple
|
5.1.9. Travail à faire : Manipuler l’arrière-plan
-
Faire les 5 exercices auto-corrigés CSS Background de w3schools
5.2. Le formatage du texte
Le formatage du texte est l’une des principales utilisation du CSS. Il permet, en autre, d’agir sur :
-
La police de caractères (la famille de polices, la taille et le style d’un texte)
-
La couleur
-
L’alignement
-
La décoration
-
…
5.2.1. Famille de polices
En CSS, il existe deux types de noms de famille de polices:
|
Remarque : Si le nom d’une famille de polices est plus d’un mot, il doit être entre guillemets, comme: Exemple
|
5.2.2. Travail à faire : Famille de police
-
Saisir le code HTML suivant et le tester dans un navigateur :
<!DOCTYPE html>
<html>
<head>
<style>
p.serif {
font-family: "Times New Roman", Times, serif;
}
p.sansserif {
font-family: Arial, Helvetica, sans-serif;
}
</style>
</head>
<body>
<h1>Famille de polices de caractères CSS</h1>
<p class="serif">Paragraphe dont la police de caractères est Times New Roman, ou à défaut Times, ou à défaut une police de type Serif.</p>
<p class="sansserif">Paragraphe dont la police de caractères est Arial, ou à défaut Helvetica, ou à défaut une police de type Sans Serif.</p>
</body>
</html>
-
Appliquer la famille de police
aux balises de titre principal.monospace
5.2.3. Taille de police
Remarque : Si vous ne spécifiez pas une taille de police, la taille par défaut pour le texte normal, comme les paragraphes, est 16px (16px = 1em). |
|
h1 {
font-size: 40px;
}
h2 {
font-size: 30px;
}
p {
font-size: 0.875em;
}
5.2.4. Travail à faire : taille de police
-
Saisir le code HTML suivant et le tester dans un navigateur :
<!DOCTYPE html>
<html>
<head>
<style>
h1 {
font-size: 40px;
}
h2 {
font-size: 30px;
}
p {
font-size: 14px;
}
</style>
</head>
<body>
<h1>Titre principal</h1>
<h2>Titre secondaire</h2>
<p>Ceci est le premier paragraphe.</p>
<p>Ceci est le second paragraphe.</p>
</body>
</html>
-
Créer une sous-classe
qui définie une taille fixe de caractères de 14px.p.fixe
-
Appliquer cette sous-classe au premier paragraphe.
-
Créer une sous-classe
qui définie une taille relative de caractère de 0,5em (soit 50% de la taille normale).p.relative
-
Appliquer cette sous-classe au second paragraphe.
5.2.5. Le style de police
La propriété Cette propriété a trois valeurs:
Exemple
|
5.2.6. Poids police
Exemple
|
5.2.7. Travail à faire : Exercices sur les polices de caractères
-
Faire les 5 exercices auto-corrigés CSS Font de w3schools
5.3. Les attributs du texte
5.3.1. Couleur du texte
Exemple
|
5.3.2. Travail à faire : Couleur du texte
-
Saisir le code HTML suivant et le tester dans un navigateur :
<!DOCTYPE html>
<html>
<head>
<style>
body {
color: blue;
}
</style>
</head>
<body>
<h1>Titre principal : On souhaite que le texte soit en vert. </h1>
<p>Ceci est un paragraphe ordinaire. La couleur de texte par défaut est bleu, elle est définie dans le sélecteur body.</p>
</body>
</html>
-
Créer le sélecteur approprié pour que tous les titres principaux soient en vert.
5.3.3. Alignement du texte
Le montre l’exemple ci-après centre aligné, et à droite et à gauche du texte aligné (alignement à gauche est sélectionné par défaut si la direction du texte est de gauche à droite, et l’alignement à droite est par défaut si la direction du texte est de droite à gauche): .Exemple
|
5.3.4. Décoration de texte
Exemple
|
5.3.5. Travail à faire : Exercices sur les attributs du texte
-
Faire les 5 exercices auto-corrigés CSS Text de w3schools
5.4. Le modèle des boites
Tous les éléments HTML peuvent être considérés comme des boîtes. En CSS, le terme "modèle de boîte" (box model) est utilisé quand on parle de la conception et la mise en page. Le modèle de boîte CSS définit une boîte qui entoure tous les éléments HTML. Il se compose :
L’image ci-dessous illustre le modèle de boîte: Explication des différentes parties:
Le modèle de boîte nous permet d’ajouter une bordure autour des éléments, et de définir l’espace entre les éléments. Exemple : Démonstration du modèle de boîte
|
5.4.1. La largeur et la hauteur d’un élément
Pour régler la largeur et la hauteur d’un élément correctement dans tous les navigateurs, il faut savoir comment fonctionne le modèle de boîte :
Lorsqu’on définit les propriétés de largeur (width) et de hauteur (height) d’un élément avec CSS, on ne définit que la largeur et la hauteur de la zone de contenu. |
div {
width: 320px;
padding: 10px;
border: 5px solid gray;
margin: 0;
}
Voici le calcul:
320px (largeur)
+ 20px (remplissage gauche et droite)
+ 10px (bordure gauche et droite)
+ 0px (marge gauche et droite)
= 350px
La largeur totale d’un élément doit être calculé comme suit:
Largeur totale de l’élément =
largeur + remplissage gauche
+ remplissage droite
+ bordure bordure
+ bordure droite
+ marge gauche
+ marge droite
La hauteur totale d’un élément doit être calculé comme suit:
Hauteur totale de l’élément =
hauteur
+ rembourrage supérieure
+ rembourrage inférieure
+ bordure supérieure
+ bordure inférieure
+ marge supérieure
+ marge inférieure
5.4.2. Travail à faire : Exercices sur les attributs du texte
-
Faire les 4 exercices auto-corrigés CSS Box Model de w3schools
5.4.3. Poisitionnement d’un élément : Mise en page flottante
|
5.4.4. Le clearfix Hack
Si un élément est plus grand que l’élément contenant et qu’il est flottant, il sera en dehors de son contenant.
La propriété
permet de régler ce problème :clearfix::after
.clearfix::after {
content: "";
clear: both;
display: table;
}
Avec les propriétés
et float
, il est facile de positionner des boîtes côtes à côtes :clearfix
* {
box-sizing: border-box;
}
.box {
float: left;
width: 33.33%; /* three boxes (use 25% for four, and 50% for two, etc) */
padding: 50px; /* if you want space between the images */
}
Prorpiété
On peut facilement créer trois boîtes flottantes côte à côte. Cependant, lorsque si on ajoute quelque chose qui agrandit la largeur de chaque boîte (par exemple un rembourrage ou une bordure), le positionnement des boîtes est rompu. La propriété |
5.4.5. Travail à faire : Exercices sur la mise page flottante
-
A partir du code de la page d’exemple :
-
Supprimer le sélecteur universel et observer les effets
-
Réintroduire le sélecteur universel, supprimer le sélecteur
et observer les effets.clearfix
-
Ajouter une bordure solide de 5px aux boites.
-
Créer une classe
qui spécifie une bordure rouge de 5px et l’appliquer au dernier paragraphe.red_bord
-
Pour dégager le dernier paragraphe des boites, ajouter à la classe
un remplissage au dessus.red_bord
-
On note que cette solution n’a aucun effet. Réintroduire le sélecteur
et observer les effets.clearfix
-
Dans la boite de droite, répéter 10 fois le paragraphe Some text inside the box. et observer les effets.
-
Ajouter la propriété adéquate pour fixer la hauteur de la boite à 500px.
-
Toujours dans la boite de droite, répéter 10 fois de plus le paragraphe Some text inside the box. et observer les effet.
-
Le contenu de la boite déborde (trop plein). Ajouter la propriété
à la classeoverflow: auto;
et observer les effets.box
-
Débordement :
|
-
Faire les 3 exercices auto-corrigés CSS Overflow de w3schools
6. Applications
6.1. Lorem ipsum
6.1.1. Travail à faire : Mise en forme d’un texte
-
Télécharger le fichier loremipsum.html et l’ouvrir dans un navigateur
-
Ouvrir le fichier HTML avec un éditeur de texte et repérer la structure de la page :
-body |-header | |-section class="section" id="section1" | |-article id="article1" | |-article id="article2" | |-article id="article3" | |-div | |-lien |-footer
-
Identifier le nom du fichier css qui assurera la mise en page et créer ce fichier
-
Ajouter dans ce fichier les règles css suivante :
-
Corps de la page :
-
Couleur de fond :
#f1f1f1;
-
Polices :
Arial, Helvetica, sans-serif;
-
-
Entête :
-
Rembourrage :
30px;
-
Alignement du texte : centré
-
Taille de la police :
35px;
-
-
Pied de page :
-
Couleur de fond : Noir
-
Rembourrage :
10px;
-
Alignement du texte : centré
-
Couleur du texte : Blanc
-
-
Lien
-
Pas de décoration du texte (lien non souligné)
-
Couleur du texte :
DarkGrey
-
Poid de la police : gras (
)bold;
-
Taille de la police : 1,5 fois la taille normale (
)1.5em;
-
Couleur du texte au passage de la souris :
grey
-
-
Les articles : Ils seront placés côte à côte dans 3 boites de largeurs identiques sur 100% de la largeur de l’écran
-
Premier arcticle à gauche de l’écran :
float: left;
-
Rembourrage :
10px
-
Hauteur :
500px
-
Ajout automatique des barres de défilements si nécessaires.
-
Couleur de fond de l’article 1 :
#ccc;
-
Couleur de fond de l’article 2 :
#aaa;
-
Couleur de fond de l’article 3 :
#bbb;
-
-
6.2. Mesure de la radioctivité
6.2.1. Travail à faire : Mise en forme d’une page
-
Télécharger le fichier geiger.html et l’ouvrir dans un navigateur
-
Ouvrir le fichier html avec un éditeur de texte et repérer la structure de la page
-
Créer et ajouter un fichier css pour assurer sa mise page pour obtenir un résultat comme ci-dessous.
Vous avez une totale liberté pour réaliser votre mise en page. Soyez créatif ! |
7. Aller plus loin…
Il est fortement conseiller de faire les exercices auto-corrigés du site de référence w3school.com :
-
https://www.w3schools.com/css/default.asp : Rappels de cours et tutoriels complets
-
https://www.w3schools.com/css/css_exercises.asp : Exercices auto-corrigés