2
Généralités et notions de bases
Internet: historique
4
Internet: Architecture
requête
client serveur
réponse
5
Navigateur
Client web
Envoyer une requête HTTP (HyperText Transfer Protocol) au serveur identifiée par un URL
(Unifrom Resource Locator)
Récupérer la réponse.
Interpréter le code:
HTML(HyperText Markup Langage),
CSS (Cascading Style Sheets)
Javascript
Exemple: Chrome de google, Mazilla Firefox, Internet Explorer, Opera, Safari,…
6
Architecture du web
Web statique
Serveur
GET: page index.html
Navigateur
index.html
Pages web HTML +CSS+ JavasSript
Web dynamique
Serveur
GET: voitures.php?color=red
Navigateur
DB
Editeurs de codes:
Notepad++
VS-code
Atom
...
WYSIWYG (What You See Is What You Get): éditeur en mode graphique:
Macromedia Dreamweaver,
FrontPage,
WIX,
Webnode,..
8
Site web: objectifs et cible
Définir l'objectif du site
Quel est le public visé ?
Que sera l'environnement cible des visiteurs ? (OS, Navigateur,..)
En visitant un site web, En quelques secondes, l’internaute doit répondre à toutes
les questions qu’il peut se poser:
Quel est le sujet dont traite le site ?
Où suis-je ?
Quelles sont les actions que je peux faire ?
Où puis-je trouver l’information que je cherche ?
Quelles sont les nouveautés du site ?
Quels sont les chemins que je peux emprunter ?
La charte graphique et l'ergonomie d'un site sont deux points à ne pas négliger :
Qualité image (couleurs, typographie, logo, icônes, boutons …)
Confort de navigation, de prise d'informations
9
Une cohérence totale avec tous les autres supports de communication
Référencements
le référencement d'un site internet sur les moteurs de recherche consiste à
mettre en œuvre des pratiques pour faire apparaître un site dans les moteurs
de recherche et pour lui faire gagner des positions.
Il existe deux types de référencement:
Le référencement automatique assuré par des programmes qui scrutent les pages
d'un site en s'appuyant, par exemple, sur les balises META situées dans la balise
d'en-tête <HEAD> de page et la description des liens et des images.
Le référencement manuel, comme sur Yahoo, c’est le fait d’ajouter l’URL du site à
la liste d’URLs de ce moteur de recherche.
Il existe plusieurs façons de se référencer :
De manière gratuite.
De manière payante.
10
Les Bases de HTML5
HTML5= HTML+CSS+JavaScript
Introduction
12
Structure d’un document HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Nom du document</title>
</head>
<body>
<!--Contenue de la page-->
</body>
</html>
13
Les balises
14
Les titres
HTML définit 6 niveaux de titres:
16
Exemples
<p> Il serait <em>avantageux</em> de savoir coder en HTML avant de faire du CSS. </p>
<p> Il est <strong> indispensable </strong> de savoir coder en HTML avant de faire du CSS. </p>
17
Attribut Style: modifier la couleur
18
Attribut Style: modifier la police
19
Attribut Style: modifier la taille
20
Les images
Pour afficher une image en HTML, on utilise la balise «<img>». Elle admet des
différents attributs, dont les plus importants sont « src » et « alt ».
src : permet de renseigner le chemin de l'image, qui peut être absolu ou relatif.
alt : affiche un texte alternatif à la place de l'image dans le cas où, pour une raison ou
une autre, celle-ci ne peut pas être chargée. Il aide de plus les moteurs de recherche à
référencer l'image.
21
Les liens hypertextes
Index.html etudiants.html
<a href="etudiants.html">Etudiants</a>
22
Les liens hypertextes
<div id="section1">
Index.html 23
Liens hypertextes
<!--Lien externe dans une autre fenêtre-->
<a href="http://www.isetbz.rnu.tn/" target="_blank">ISET Bizerte</a>
<!--Envoyer email-->
<a href="mailto:nizar.maatoug@hotmail.com">Contacter-moi</a>
Elles servent, comme leur nom l'indique, à créer une liste d'éléments (items).
On distingue principalement trois types différents de listes:
Les listes non ordonnées, ou à puces.
Les listes ordonnées.
Les listes de définitions.
26
Liste non ordonnée
<p> Ma liste de courses : </p>
<ul>
<li> Champignons </li>
<li> Avocat </li>
<li> Dentifrice </li>
<li> Céréales </li>
</ul>
<p> Ma liste de courses : </p>
<ul style="list-style-type: circle;">
<li> Champignons </li>
<li> Avocat </li>
<li> Dentifrice </li>
<li> Céréales </li>
</ul>
27
Liste non ordonnée
<p> Ma liste de courses : </p>
<ul style="list-style-type: square;">
<li> Champignons </li>
<li> Avocat </li>
<li> Dentifrice </li>
<li> Céréales </li>
</ul>
<p> Ma liste de courses : </p>
<ul style="list-style-type: none;">
<li> Champignons </li>
<li> Avocat </li>
<li> Dentifrice </li>
<li> Céréales </li>
</ul>
28
Liste non ordonnée
<p> Ma liste de courses : </p>
<ul>
<li style="list-style-image:url(images/ballon.png);"> Champignons </li>
<li style="list-style-image:url(images/ballon.png);"> Avocat </li>
<li style="list-style-image:url(images/ballon.png);"> Dentifrice </li>
<li style="list-style-image:url(images/ballon.png);"> Céréales </li>
</ul>
<style>
Li {list-style-image:url(images/ballon.png); }
</style>
29
Liste ordonnée
<h2>Liste Ordonnée</h2>
<ol>
<li> 1ère place </li>
<li> 2ème place </li>
<li> 3ème place </li>
</ol>
<ol start="2">
<li> 2ème place </li>
<li> 3ème place </li>
</ol>
30
Liste ordonnée
<ol type="I">
<li> 1ère place </li>
<li> 2ème place </li>
<li> 3ème place </li>
</ol>
<ol type="i">
<li> 1ère place </li>
<li> 2ème place </li>
<li> 3ème place </li>
</ol>
<ol type="A">
<li> 1ère place </li>
<li> 2ème place </li>
<li> 3ème place </li>
</ol>
<ol type="a">
<li> 1ère place </li>
<li> 2ème place </li> 31
<li> 3ème place </li>
</ol>
Listes imbriquées
<ol type="I">
<li> La genèse</li>
<li> La vie
<ol type="A">
<li>L'enfance</li>
<li>L'adolescence</li>
<li>Le passage à l'âge adulte
<ul>
<li> Le jeune adulte </li>
<li> La crise de la quarantaine</li>
</ul>
</li>
<li> La vieillesse </li>
</ol>
</li>
<li>La mort</li>
</ol> 32
Listes de définitions
<dl>
<dt>Firefox</dt>
<dd>
Un navigateur Web libre, open-source, multi-plateforme développé par la
Mozilla Corporation et des centaines de volontaires.
</dd>
<!-- D'autres termes et leurs descriptions -->
</dl>
33
Les conteneurs
34
Les balises génériques
37
Chapitre 3:Les notions
Avancées du HTML
Les Tableaux
Les Formulaires
Les tableaux
39
Tableaux: Exemple
<table >
<tr>
<td> Cellule 1</td>
<td> Cellule 2</td>
</tr>
<tr>
<td>Cellule 3</td>
<td>Cellule 4</td>
</tr>
</table>
<style>
table, th,td{
border: 1px solid black;
} 40
</style>
Tabeleaux: Titre
<table >
<caption>Titre du tableau</caption>
<tr>
<td> Cellule 1</td>
<td> Cellule 2</td>
</tr>
<tr>
<td>Cellule 3</td>
<td>Cellule 4</td>
</tr>
</table>
41
Tableaux: en-tête
<table >
<caption>Titre du tableau</caption>
<tr>
<th>Libelle1</th>
<th>Libelle2</th>
</tr>
<tr>
<td> Cellule 1</td>
<td> Cellule 2</td>
</tr>
<tr>
<td>Cellule 3</td>
<td>Cellule 4</td>
</tr>
</table>
42
Fusion de Lignes et de colonnes
<table>
<tr>
<td colspan="5"> Cellule qui occupe 5 colonnes</td>
</tr>
<tr>
<td>Colonne 1</td>
<td>Colonne 2</td>
<td>Colonne 3</td>
<td>Colonne 4</td>
<td>Colonne 5</td>
</tr>
</table>
43
Fusion de Lignes et de colonnes
<table>
<tr>
<td rowspan="2">Cellule sur deux lignes</td>
<td>Ligne 1 - Colonne 2</td>
<td>Ligne 1 - Colonne 3</td>
<td>Ligne 1 - Colonne 4</td>
</tr>
<tr>
<td>Ligne 2 - Colonne 2</td>
<td>Ligne 2 - Colonne 3</td>
<td>Ligne 2 - Colonne 4</td>
</tr>
</table>
44
Exercice
45
Correction
<table>
<tr>
<td colspan="3">Cellule 1</td>
<td>Cellule 2</td>
</tr>
<tr>
<td rowspan="3">Cellule 3</td>
<td>Cellule 4</td>
<td>Cellule 5</td>
<td>Cellule 6</td>
</tr>
<tr>
<td>Cellule 7</td>
<td colspan="2" rowspan="2">Cellule 8</td>
</tr>
<tr>
<td>Cellule 9</td>
</tr> 46
</table>
Regroupement: <thead>, <tbody>, <tfoot>
<table>
<thead>
<!-- En-tête du tableau -->
</thead>
<tbody>
<!-- Corps du tableau -->
</tbody>
<tfoot>
<!-- Pied de tableau -->
</tfoot>
</table>
47
Regroupement: Exemple
<table>
<caption>Liste des moyennes</caption>
<thead>
<tr>
<th>Elève</th>
<th>Math</th>
<th>Web</th>
<th>SGBD</th>
<th>Sport</th>
</tr>
</thead>
<tfoot>
<tr>
<th>Moyenne classe</th>
<th colspan="4">13</th>
</tr>
</tfoot>
<tbody>
<!-- Corps du tableau -->
</tbody>
48
</table>
Les Formulaires
49
Les formulaires
Les formulaires HTML permettent aux utilisateurs d’envoyer des données au serveur:
Inscription d’un étudiant,
Formulaire de contact,..
Les formulaires sont dotés de différents contrôles:
Champs de saisies
Listes de choix
Boutons
50
Les formulaires
51
Les formulaires
52
Les formulaires: Exemple avec GET
<input name="motCle">
<input type="submit">
</form>
53
Les formulaires: Exemple avec POST
<form action="inscription.php" method="POST" >
<input type="submit">
</form>
54
Les formulaires: Catégories de contrôles
55
Texte mono-ligne: les contrôles de base
56
Autres types d’input
57
Avantages
58
Exemples: input text, password, hidden
</form>
59
Exemples: input
60
Liste déroulante
<select name="couleur_yeux">
<option value="bleus">Bleus</option>
<option value="bruns" selected="selected">Bruns</option>
<option value="verts">Verts</option>
<option value="noisettes">Noisettes</option>
<option value="gris">Gris</option>
<option value="vairons">Vairons</option>
</select>
61
Les boutons radios
62
Les cases à cocher
<input type="checkbox" name="qualite" value="intelligent"> Intelligent
<input type="checkbox" name="qualite" value="beau"> Beau
<input type="checkbox" name="qualite" value="serviable"> Serviable
<input type="checkbox" name="qualite" value="fort"> Fort
<input type="checkbox" name="qualite" value="généreux"> Généreux
63
Range
64
Validation coté client
65
Attributs de validation
66
Contrôles de Sélection
67
Validation: exemples
68
Organiser les contrôles
69
Label
<!--Référencement implicite-->
<label>Nom:
<input type="text" name="nom" id="nom">
</label>
70
Fieldset
<fieldset>
<legend>Inscription</legend>
<label for="nom">Nom:</label>
<input type="text" name="nom" id="nom">
<label for="prenom">Prénom:</label>
<input type="text" name="prenom" id="prenom">
<label for="email">Email:</label>
<input type="email" name="email" id="email">
</fieldset>
</form>
71
Input: file
</form>
72
Exercice
73
Les contenus embarqués
Vidéo
Audio
Défintion
75
<video>
76
<video>
Autres attributs:
autoplay: lance la lecture de la vidéo dès le chargement de la page
Autobuffer: active le téléchargement de la vidéo en arrière plan.
poster: permet d’ajouter une image du vidéo
loop: jouer la vidéo en boucle.
77
<audio>
<audio controls>
<source src="chanson.mp3" type="audio/mpeg">
<source src=" chanson.ogg" type="audio/ogg">
Votre navigateur ne supporte pas ces formats audio.
</audio>
78
<audio>
Autres attributs:
loop: l’audio sera joué en boucle
autoplay: l’audio sera joué dès le chargement de la page
preload: indique si l’audio peut être préchargé dès le chargement de la page.
79
Les feuilles
de style CSS
Introduction
81
Exemple
<div>
<ul>
<li>liste</li>
<li>non</li>
<li>ordonnée</li>
</ul>
</div>
</html>
Exemple
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div>
<ul>
<li>liste</li>
<li id="li2">non</li>
<li>ordonnée</li>
</ul>
</div>
</body>
</html>
84
Avantages
page1.html
...
85
CSS: syntaxe
sélecteur{
propriété du style: valeur;
}
div{
color: blue;
}
86
Ordre d’importation
Démonstration
87
Héritage, Spécialisation
Démonstration
88
Les sélecteurs
sélecteur{
propriété du style: valeur;
}
89
Les sélecteurs de base
<div class="c"></div>
<span class="c d"></span>
90
Les sélecteurs combinés
Sélecteur OU div,a{propriété: valeur;} a div c div
92
Les sélecteurs d’attributs
94
Sélecteur: pseudo-class état
95
nieme dernier fils a:nth-last-child(3)
CSS: notions avancées
Modèle de boite
Positionnement
Float
Modèle de boite
98
Exemple (1)
p{
width: 200px;
border-top-width: thin;
border-bottom-width: 10px;
border-right-width: medium;
border-left-width: thick;
border-color: blue;
border-style: solid;
margin: 5px 3px 4px 9px;
padding:1px 5px;
}
99
Exemple (2)
p{
width: 200px;
height: 100px;
border: 5px dotted red;
margin: 5px 4px 9px;
padding:1px;
}
100
Exemple (3)
#p1{
box-sizing: content-box;
width: 200px;
height: 100px;
border: 5px dotted red;
margin: 5px 4px 9px;
padding:1px;
}
#p2{
box-sizing: border-box;
width: 200px;
height: 100px;
border: 5px dotted red;
margin: 5px 4px 9px;
padding:1px;
}
101
Positionnement
Positionnement
Le positionnement en CSS consiste à gérer la position des éléments les uns par
rapport aux autres dans une page web.
103
Mise en page avec CSS
Grid Layout
Introduction
105
Créer des Layouts avec CSS Grid
CSS Grid: rôle
Header
Footer
107
CSS Grid rôle
108
CSS Grid: rôle
Header
Footer
109
Avantages
110
Avantages
111
Inconvénients
Complexité d’implémentation
112
Inconvénients
113
Pourquoi les Grid ?
114
Pourquoi les Grid ?
115
116
Pourquoi les Grid ?
117
12 colonnes Grid System
118
12 colonnes Grid System
119
CSS Grid workflow
Approche à 2-étapes
Positionner les
Définir le GRID
éléments
121
Les propriétés de GRID
122
Template ou maquette
Header
Footer
123
Template ou maquette
Header
Footer
124
Définir les colonnes du GRID
<div class="container"> .container {
<header>Header</header> height: 100%;
<nav>Navigation</nav> display: grid;
<main>Main</main> grid-template-columns: 1fr 2fr 1fr;
<aside>Aside</aside> grid-template-rows: 10% 70% 20%;
<footer>Footer</footer> }
</div>
125
126
Changer la position des Grid-items
grid-column-start grid-column-end
127
1 2 3 4
128
Définir les colonnes du GRID
<div class="container"> .container {
<header>Header</header> height: 100%;
<nav>Navigation</nav> display: grid;
<main>Main</main> grid-template-columns: 1fr 2fr 1fr;
<aside>Aside</aside> grid-template-rows: 10% 70% 20%;
<footer>Footer</footer> }
</div>
header, footer {
grid-column-start: 1;
grid-column-end: 4;
}
129
130
Grid: Définition avancé
Track sizes
Grid shorthands
Grid gaps
Grid: Track sizes
Valeurs statiques
px, pt,..
133
.container{
grid-template-columns: 25% 50px 25%;
}
Pourcentages
relative à la taille du Grid
134
.container{
grid-template-columns: 25% auto 25%;
}
auto
Laisser le navigateur décide
135
.container{
grid-template-columns: 10px 1fr 2fr;
}
fraction
Diviser la partie restante
136
.container{
grid-template-columns: 10px 1fr 2fr;
}
fraction
Diviser la partie restante
137
Viewport responsive Vs content responsive
138
.container{
grid-template-columns: 1fr min-content 2fr;
}
min-content
Réserver le track le plus petit que possible
139
.container{
grid-template-columns: 1fr max-content 2fr;
}
max-content
Réserver le track le plus grand que possible
140
.container{
grid-template-columns: 1fr minmax(max-content,50%) 2fr;
}
minmax(min-size,max-size)
Fonction spécifiant la taille min et max du track
141
.container{
grid-template-columns: 1fr fit-content(100px) 2fr;
}
fit-content(max-size)
Adapter la taille du track mais pas plus que max-size
142
Grid shorthands
143
.container{
grid-template: 1fr 2fr / repeat(5, 2fr 3fr);
}
grid-template
Propriété pour définir les lignes et les colonnes
144
Votre objectif ce n’est pas
d’écrire le minimum de code
145
Grid Gaps
146
.container{
grid-column-gap: 10px;
}
grid-column-gap
La distance entre les colonnes du grid
147
148
.container{
grid-row-gap: 20px;
}
grid-row-gap
La distance entre les lignes du grid
149
150
.container{
grid-gap: 20px 10px;
}
grid-gap
La distance entre les lignes et les colonnes du grid
151
152
Positionnement avancé
153
.item{
grid-column: 1 / 3;
}
grid-column
Définir grid-column-start et grid-column-end
154
.item{
grid-row: 2 / 4;
}
grid-row
Définir grid-row-start et grid-row-end
155
.item{
grid-area: 2 / 2 / 3 /6;
}
grid-area
Définir la position de item avec une seule propriété
156
Alignement et justification
157
Alignement et justification
item container
Grid Page web
contenu area
158
Alignement du Grid dans la page web
159
Alignement du Grid dans la page web
160
Alignement du Grid dans la page web
161
Alignement du contenu dans une cellule
162
Alignement du contenu dans une cellule
163
Alignement du contenu dans une cellule
164
Propriétés d’alignement et justification
justify-content
align-content
justify-items
align-items
justify-self
align-self
165
Justifier et aligner
166
justify-content et align-content
167
justify-content et align-content
168
justify-content et align-content
169
justify-content et align-content
170
justify-content et align-content
171
justify-content et align-content
172
Justify-items et align-items
173
Justify-items et align-items
174
Justify-items et align-items
175
Justify-items et align-items
176
Justify-items et align-items
177
justify-items et align-items
178
Justify-self et align-self
179
Justify-self et align-self
180
Justify-self et align-self
181
Justify-self et align-self
182
justify-self et align-self
183
Media-Query
Responsive Design
Introduction
La spécification CSS3 Media-Queries définit les techniques pour l'application
de feuilles de styles en fonction des périphériques de consultation utilisés.
un style adapté au périphérique:
185
Exemple
186
Responsive Design
Header
Header Header
Nav Nav
Footer Footer
Footer
187
Approche: Mobile-first
small.css
@media screen and (min-width:valeur) {}
medium.css
@media screen and (min-width:valeur) {}
large.css
188
Small Screen Header
Nav
Main
html,body {
height: 100%; Aside
} Footer
.container {
height: 100%;
display: grid;
grid-template-columns: 1fr;
grid-template-rows: 1fr 2fr 4fr 2fr 1fr;
}
header, footer,nav,main,aside {
grid-column-start: 1;
grid-column-end: 2;
}
189
Medium Screen
Header
Nav
Main Aside
@media screen and (min-width: 475px) {
.container { Footer
height: 100%;
display: grid;
grid-template-columns: 3fr 1fr;
grid-template-rows: 1fr 2fr 4fr 1fr;
}
header,footer,nav{
grid-column-start: 1;
grid-column-end: 3;
}
}
190
Header
Large screen
Nav Main Aside
@media screen and (min-width: 650px) {
.container {
height: 100%;
display: grid;
grid-template-columns: 1fr 2fr 1fr; Footer
grid-template-rows: 10% 70% 20%;
}
header, footer {
grid-column-start: 1;
grid-column-end: 4;
}
nav{
grid-column-start: 1;
grid-column-end: 2;
}
main{
grid-column-start: 2;
grid-column-end: 3;
}
aside{
grid-column-start: 3;
grid-column-end: 4; 191
}
}
Remarque
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
</body>
</html>
192
Exercice
193
Exercice
194
Page index: Maquette
195
Page index: Maquette
196
Page galerie: maquette
197
Page galerie: maquette
198
Page galerie: maquette
199
Approche: Mobile-first
small.css
@media screen and (min-width:350px) {}
medium.css
@media screen and (min-width:750px) {}
large.css
200
Démarche
Créer la structure du projet
Implémenter la structure haut niveau des pages index.html et galerie.html
Appliquer l’approche mobile-first aux pages index.html et galerie (Niveau 1)
Implémenter le header
Appliquer l’approche mobile-first au header
Implémenter la barre de navigation
Appliquer l’approche mobile-first au nav
Implémenter le footer
Implémenter la section pour index.html
Implémenter la section pour galerie.html
Appliquer l’approche mobile-first à la section (galerie.html)
Compéter les styles de forme, couleur,.. 201
Structure du projet
202
Structure Haut niveau: index.html
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Home</title>
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/style.css">
<link rel="stylesheet" href="css/small.css">
<link rel="stylesheet" href="css/medium.css">
<link rel="stylesheet" href="css/large.css">
</head>
<body>
</body>
</html>
203
Structure Haut niveau: index.html
<body>
<div class="container">
<header class="entete">Header</header>
<nav>Nav</nav>
<section>Section</section>
<footer>Footer</footer>
</div>
</body>
</html>
204
Approche: mobile-first: small.css
/*****************Positionnement Niveau 1******************/
html,body{
width: 100%;
height: 100%;
margin:0 auto;
}
.container{
width: 100vw;
height: 100vh;
display: grid;
grid-template-columns: 1fr;
grid-template-rows: 1fr 1fr 5fr 1fr;
}
/*********************************************************/
205
Ne pas oublier: style.css
*{
box-sizing: border-box;
}
206
Approche: mobile-first: medium.css
207
Approche: mobile-first: large.css
@media screen and (min-width:750px) {
208
Header
209
Implémentation du Header: index.html
<header class="entete">
<img class="logo" src="images/Dexter's_Lab_Logo.png" alt="Logo Dexter">
<div class="titre-1">
<h1>Bienvenue sur ma page personnelle</h1>
<h3>Je suis en TI16 et j'apprends le HTML et CSS</h3>
</div>
</header>
210
Approche mobile-First du Header: small.css
/***************Positionnement Header*****************/
.entete{
display: grid;
grid-template-columns: 1fr;
grid-template-rows: min-content min-content;
}
.logo{
width:80vw;
justify-self: center;
align-self: center;
}
.titre-1{
width: 80%;
justify-self: center;
align-self: center;
text-align: center;
}
211
/***************************************************/
Approche mobile-First Header: medium.css
212
Approche mobile First du Header: large.css
@media screen and (min-width:750px) {
/***************Positionnement Header****************/
.entete{
display: grid;
grid-template-columns: min-content 1fr;
}
.logo{
width: 20vw;
height: 80%;
justify-self: center;
}
.titre-1{
justify-self: center;
align-self: center;
text-align: center;
}
213
/*********************************************************/
}
Navigation
214
Implémenter la navigation: index.html
<nav>
<h3>Menu</h3>
<ul>
<li><a href="index.html"> Acceuil </a></li>
<li><a href="#"> Mon CV </a></li>
<li><a href="galerie.html"> Ma galerie </a></li>
<li><a href="#"> Inscrivez-vous </a></li>
<li><a href="#"> Contactez-Moi </a></li>
</ul>
</nav>
215
Approche mobile-first navigation: small.css
/************************Navigation***********************/
nav > ul {
display: grid;
grid-template-columns: 1fr;
text-align: center;
margin-top: 0;
margin-bottom: 0;
width: 100%;
nav > h3 {
display: none;
}
/**********************************************************/
216
Approche mobile First du Nav: medium.css
217
Approche mobile First du Nav: large.css
@media screen and (min-width:750px) {
/************************Nav******************************/
nav > ul {
margin-left: 0;
padding: 0 0 0 5px;
text-align: left;
width: 100%;
display: grid;
grid-template-columns: 1fr;
}
nav > ul > li > a {
padding: 10px;
}
nav > h3{
display: block;
} 218
/*********************************************************/
}
Footer
219
Implémenter le Footer: index.html
<footer>
<h2>
Copyright (c) 2021
<a class="lien“ href="mailto:LaboDexter@gmail.fr">
LaboDexter@gmail.fr
</a>
</h2>
</footer>
220
Implémenter la section: index.html
<section>
<article>
<header>
<h2>A propos de moi</h2>
</header>
<p>
Salut! Je m'appelle Dexter et je suis le héro d'un dessin animé…
</p>
</article>
. . .
</section>
221
galerie
222
Implémenter la section: galerie.html
<section>
<article>
<header>
<h2>Mes photos</h2>
</header>
<div class="galerie">
<img src="Images/img_01.png" alt="img01">
<img src="Images/img_02.png" alt="img02">
<img src="Images/img_03.jpg" alt="img03">
<img src="Images/img_04.jpg" alt="img04">
<img src="Images/img_05.png" alt="img05">
<img src="Images/img_06.png" alt="img06">
<img src="Images/img_07.png" alt="img07">
<img src="Images/img_08.jpg" alt="img08">
</div>
</article>
</section>
223
Approche mobile-first galerie: small.css
/*****************Galerie images**************************/
.galerie {
display: grid;
grid-template-columns: 1fr;
grid-column-gap: 10px;
grid-row-gap: 10px;
justify-items: center;
}
/*********************************************************/
224
Approche mobile-first galerie: medium.css
225
Approche mobile-first galerie: large.css
226
Mise en forme: style.css
*{
box-sizing: border-box;
}
body{
background-color: #DDDDDD;
font-family: Century Gothic, Tahoma, Arial, Verdana, Helvetica, sans-serif;
}
.container{
background-color: #AAAAFF;
}
227
Mise en forme: style.css
/*********Header**************/
.logo{ .titre-1 > h3{
display: block; color: white;
} font-size:20px;
.entete{ font-weight: bold;
background-color: LightBlue; text-align: center;
} padding:20px 5px;
.titre-1 > h1{ }
color: yellow; /*****************************/
font-size: 32px;
font-weight: bold;
text-align: center;
padding: 10px;
width: 100%;
}
228
Mise en forme: style.css
}
Mise en forme: style.css
/********* SECTION ***********/ article h2, h3 {
section{ font-size: 18px;
width: 100%; font-weight: bold;
height: 100%; }
background-color:#AAAAFF ;
} article h2 {
color: white;
article { }
background-color: #eee;
margin: 10px; article h3 {
padding: 15px 10px; color: navy;
} }
article p {
article > header { font-size: 18px;
background-color: LightBlue; margin-top: 1em;
text-align: center; margin-bottom: 1em;
margin-top:1em; text-align: justify; 230
margin-bottom:1em; }
} /****************************/
Mise en forme: style.css
/*******Galerie images*******/
.galerie img{
width: 100%;
height: 100%;
display: inline-block;
border: 1px solid black;
box-shadow: 5px 5px 5px black;
border-radius: 10px;
}
232