Notez que la police d'affichage a été modifiée en Verdana
5.1. Application d'un style sur la page index.html
Insérer un lien dans la section head de la page index.html
de manière à introduire une référence vers un fichier CSS que l'on nommera style.css.
Dans le navigateur (Google Chrome ou Chromium), charger cette page puis ouvrir le panneau des
Outils de développement avec Ctrl + Maj + I.
Recharger ensuite la page en appuyant sur F5.
5.2. Modification du fichier CSS
On va dans le cadre de ce TP utiliser flexbox afin de positionner nos éléments.
5.2.1. Modification de body
Dans le fichier CSS introduire une rubrique pour body :
body {
display: flex;
}
Recharger la page en appuyant sur F5 : on voit que les éléments sont disposés horizontalement les uns à la suite des autres.
Il va donc être nécessaire de changer l'orientation afin que les éléments soient verticalement les uns à la suite des autres. Modifiez alors la partie body comme suit :
body {
display: flex;
flex-direction: column;
}
Recharger la page en appuyant sur F5. On voit que la disposition est conforme à ce que l'on désirait.
Modifier également la police pour qu'elle soit de type Verdana ou Tahoma ou sans-serif.
5.2.2. Modification de header
On veut que le header ait une hauteur de 200 pixels et que le texte (h1) soit centré horizontalement et verticalement.
header {
height:200px;
background-color:black;
}
Il faut ensuite modifier la balise h1 mais qui se trouve à l'intérieur de header :
header h1 {
line-height:200px;
font-size:40px;
text-align:center;
color:rgb(204,204,153);
}
La couleur d'affichage est modifiée en #e0d090. Il s'agit d'une couleur
proche de Lima Bean.
Recharger la page et constater que le texte n'est pas aligné verticalement. Pourquoi ?
la réponse est simple, mais encore faut-il le savoir : la balise h1 dispose par défaut d'une marge. Il suffit
de la retrouver dans les styles associés à h1 dans les Outils de développement dans l'onglet Eléments.
Il faut donc supprimer la marge comme celà :
header h1 {
line-height:200px;
font-size:40px;
text-align:center;
color:rgb(204,204,153);
margin:0;
}
5.2.3. Modification de body pour coller aux bords
Vous devriez vous apercevoir que le header n'est pas collé aux bords de la fenêtre de visualiation du
document HTML. La encore la faute est due à une marge par défaut associée à body
. Il faut encore
modifier la marge et la définir à 0 pour obtenir un affichage correct :
body {
margin:0;
display: flex;
flex-direction: column;
}
5.2.4. Modification de la barre de navigation
Nous allons à présent nous intéresser à la barre de navigation nav. Tout comme pour le header,
nous allons définir une hauteur de 40 pixels et une couleur de fond gris (gray).
nav {
height:40px;
background-color:gray;
}
Il faut ensuite modifier le mode d'affichage de la liste et de ses éléments :
la liste ne doit pas afficher de cercle plein devant chaque élément
on va fixer une marge de 0 pour éliminer les marges par défaut définie pour la balise ul
on choisit un mode d'affichage géré par flexbox
et on centre les éléments horizontalement et verticalement
nav ul {
list-style-type:none;
margin:0;
display: flex;
justify-content:center;
align-items:center;
}
On passe ensuite aux balises li :
on modifie la marge à 0
on ajoute un espace de 30 pixels à droite et à gauche de chaque élément
on fixe la hauteur de ligne à 40 pixels, la même hauteur que pour la balise nav
nav ul li {
margin:0;
padding:030px;
line-height:40px;
}
Ce n'est pas terminé, il faut modifier la balise a de chaque élément :
on supprime la barre en dessous du lien (propriété text-decoration)
on affiche le texte en gras (propriété font-weight)
on modifie la couleur en (propriété color)
nav ul li a {
text-decoration:none;
font-weight:bold;
color:goldenrod;
}
Et enfin, pour un effet de style, on va modifier la couleur du lien quand la souris passe dessus :
nav ul li a:hover{
color:white;
}
5.2.5. Modification du bas de page
Procéder comme avec le header en définissant un footer de 100 pixels de haut et
en positionnant le paragraphe à l'intérieur au centre.
5.2.6. Modification du contenu princial
La balise main occupe le reste de la page mais on aimerait qu'elle occupe tout le reste de la fenêtre. Il faut
dans ce cas modifier sa hauteur, mais tout dépendra de la hauteur de la fenêtre également appelée viewport. On définit donc
main de la façon suivante :
main {
display: flex;
flex-direction: column;
justify-content:center;
align-items:center;
min-height:calc(100vh - 340px);
}
On utilise flexbox pour centrer le contenu du main et on calcule (calc) la hauteur du main en fonction
de la hauteur du viewport : 100hv signifie 100% of height of viewport, c'est à dire la taille de la fenêtre
en pixels.