Académique Documents
Professionnel Documents
Culture Documents
SI Web 3 Mise en Page
SI Web 3 Mise en Page
Note : Ce support de travaux pratiques est librement inspiré de différents travaux qui sont cités
dans la partie « Sources », à la fin du présent document. Il est partagé sous licence libre.
Nous approchons de plus en plus du but. Si nos pages web ne ressemblent pas encore tout à fait aux sites
web que nous connaissons, c'est qu'il nous manque les connaissances nécessaires pour faire la mise en
page.
En général, une page web est constituée d'un en-tête (tout en haut), de menus de navigation (en haut ou
sur les côtés), de différentes sections au centre… et d'un pied de page (tout en bas). Dans ce chapitre,
nous allons nous intéresser aux nouvelles balises HTML dédiées à la structuration du site. Ces balises ont
été introduites par HTML5 (elles n'existaient pas avant) et vont nous permettre de dire : « Ceci est mon
en-tête », « Ceci est mon menu de navigation », etc.
1. Structurer sa page
Vous avez déjà pu observer avec l’application CEDjs, que nous pouvions utiliser des balises structurantes
pour organiser notre contenu. Nous avions dit précédemment que nous explorions cela plus tard. C’est
désormais le moment. Nous allons cependant cette fois-ci nous appuyer sur le site « developpez.com »
dont les informations, en plus d’être indispensable à la veille technologique d’un étudiant en BTS SIO,
sont suffisamment nombreuses pour qu’elles justifient amplement l’utilisation de balises structurantes.
1.1. Observations
Travail à faire
1..1 Ouvrir le site Web « développez » avec votre navigateur Web Firefox, puis lancer l’ins-
pecteur à partir du menu et des « outils de développement » ou encore avec la combi-
naison de touches du clavier : Ctrl + Maj + C
À l’aide de l’inspecteur, vous allez observer différents éléments de la page Web afin de déterminer quelles
balises sont utilisées pour structurer la page.
Travail à faire
Effectuer les opérations présentées ci-dessous et noter vos conclusions, réponses sur une feuille de papier.
1..2 Retrouver la zone capturée ci-dessus à l’aide de l’inspecteur. Quelles informations sont-
elles présentées ? À quelle partie d’un site Web cela correspond-elle (nommez là) ?
Quelle balise est-elle utilisée pour structurer cette zone ?
1..3 Retrouver la zone capturée ci-dessus à l’aide de l’inspecteur. Quelles informations sont-
elles présentées ? À quelle partie d’un site Web cela correspond-elle (nommez là) ?
Quelle balise est-elle utilisée pour structurer cette zone ?
1..4 Retrouver la zone capturée ci-dessus à l’aide de l’inspecteur. Quelles informations sont-
elles présentées ? À quelle partie d’un site Web cela correspond-elle (nommez là) ?
Quelle balise est-elle utilisée pour structurer cette zone ?
Travail à faire
Effectuer les opérations présentées ci-dessous et noter vos conclusions, réponses sur une feuille de papier.
1..6 Retrouver la zone capturée ci-dessus à l’aide de l’inspecteur. Quelles informations sont-
elles présentées ? À quelle partie d’un site Web cela correspond-elle (nommez là) ?
Quelle balise est-elle utilisée pour structurer cette zone ?
1.2. Résumé
• Plusieurs balises ont été introduites avec HTML5 pour
délimiter les différentes zones qui constituent la page web :
• <header> : en-tête ;
• <footer> : pied de page ;
• <nav> : liens principaux de navigation ;
• <section> : section de page ;
• <aside> : informations complémentaires ;
• <article> : article indépendant.
• Ces balises peuvent être imbriquées les unes dans les autres. Ainsi, une section peut avoir son
propre en-tête.
• Ces balises ne s'occupent pas de la mise en page. Elles servent seulement à indiquer à l'ordinateur
le sens du texte qu'elles contiennent. On pourrait très bien placer l'en-tête en bas de la page si on le
souhaite.
1.3. Application
Nous allons maintenant revenir sur notre page consacrée à Tim Berners-Lee. Vous débuterez votre travail
à partir des éléments de correction partagés à la suite de la seconde partie consacrée à l’introduction au
format de données CSS.
Le contenu de notre page est trop limité pour pouvoir appliquer l’ensemble des balises structurantes.
Notre page comporte cependant une zone intégrant les principaux liens de navigation.
Exercice
1..8 Ajouter une balise de navigation au code HTML à l’endroit opportun.
Remarque : Vous retrouverez le résultat sur la branche correspondant à l’itération n°3 du dépôt
dédié.
2.4. Observations
Rappel : Il existe deux balises génériques. La seule différence entre les deux est que l'une
d'elle est inline et l'autre est block : <span>…</span> (inline) ; <div>…</div> (block).
Nous revenons maintenant vers l’application CEDjs et son site de démonstration, toujours hébergé sur les
pages de Framagit, qui va nous permettre de comprendre la mise en page de type inline-block.
Travail à faire
Effectuer les opérations présentées ci-dessous et noter vos conclusions, réponses sur une feuille de papier.
2..9 Ouvrir le site de démonstration avec votre navigateur Web Firefox, puis sélectionner
l’éditeur de style dans les « outils de développement ».
2..10 Localiser la définition de la mise en page de logo et en_tete, puis modifier la valeur de la
propriété display d’inline-block en block. Qu’observez-vous ? Cet affichage correspond-il
au comportement par défaut d’une balise <div> ? Supprimer la propriété display pour
vérifier cela.
2..11 Localiser la définition de la mise en page des balises article et aside, puis modifier la va-
leur de la propriété display d’inline-block en block. Qu’observez-vous ? Cet affichage cor-
respond-il au comportement par défaut d’une balise <div> ? Supprimer la propriété dis-
play pour vérifier cela.
2..12 Rafraîchir, puis modifier la valeur de la propriété vertical-align de top en middle. Qu’ob-
servez-vous ? À quoi sert la propriété vertical-align ?
2.5. Application
Nous allons maintenant revenir sur notre page consacrée à Tim Berners-Lee. Vous débuterez votre travail
à la suite de l’exercice précédent (structuration de la navigation). Vous trouvez une figure représentant le
résultat final à obtenir après l’énoncé de l’exercice.
Exercice
2..13 Mettre en page le menu de navigation en alignant les différents éléments.
Remarque : Vous retrouverez le résultat sur la branche correspondant à l’itération n°4 du dépôt
dédié.
3.1. Observations
Le principe de la mise en page avec Flexbox est simple : vous définissez un conteneur, et à l'intérieur
vous placez plusieurs éléments. Imaginez un carton dans lequel vous rangez plusieurs objets : c'est le
même principe !
Nous allons commencer à partir d’un exemple simple, dont voici le site de démonstration.
Travail à faire
3..14 Ouvrir le site Web « développez » avec votre navigateur Web Firefox, puis lancer l’ins-
pecteur à partir du menu et des « outils de développement » ou encore avec la combi-
naison de touches du clavier : Ctrl + Maj + C
Nous retrouvons (voir la figure ci-contre) le code
HTML du fichier index.html. Le conteneur est une
balise HTML, et les éléments sont d'autres balises
HTML à l'intérieur.
3..15 Ouvrir l’éditeur de style, puis modifier
la valeur de la propriété display de flex
en block. Qu’observez-vous ? Quel effet
produit la valeur flex ?
3..16 Toujours dans l’éditeur de style, modi-
fier la valeur de la propriété flex-direc-
tion du conteneur de row-reverse en co-
lumn, column-reverse, puis row. Qu’ob-
servez-vous ? Quels effets produisent sur les éléments ces différentes valeurs pour la
propriété flex-direction ?
3..17 Toujours dans l’éditeur de style, modifier la valeur de la propriété justify-content de
space-between en flex-start, flex-end, center, space-around. Qu’observez-vous ? Quels ef-
fets produisent sur les éléments ces différentes valeurs pour la propriété justify-
content ?
Si nous travaillons maintenant sur un projet où les trois éléments sont chacun des conteneurs. Le site de
démonstration, nous permet d’aller plus loin sur notre découverte de Flexbox.
Travail à faire
3..18 Ouvrir le site Web « développez » avec votre navigateur Web Firefox, puis lancer l’ins-
pecteur à partir du menu et des « outils de développement » ou encore avec la combi-
naison de touches du clavier : Ctrl + Maj + C
3..19 Ouvrir l’éditeur de style, puis modifier la valeur de la propriété justify-content des trois
éléments de center en flex-start. Qu’observez-vous ? Cela confirme-t-il l’effet observé
précédemment pour la propriété justify-content ?
3..20 Toujours dans l’éditeur de style, modifier la valeur de la propriété text-align des trois
éléments de center à left. Qu’observez-vous ? Résumer l’effet des deux valeurs center.
Nous travaillerons maintenant sur un troisième projet. Le site de démonstration, nous permet de pousser
encore plus loin notre découverte de Flexbox.
Travail à faire
3..21 Ouvrir le site Web « développez » avec votre navigateur Web Firefox, puis lancer l’ins-
pecteur à partir du menu et des « outils de développement » ou encore avec la combi-
naison de touches du clavier : Ctrl + Maj + C
3..22 Ouvrir l’éditeur de style, puis modifier la valeur de la propriété align-items du conteneur
de flex-end en flex-start, puis center et baseline. Qu’observez-vous ? Quels effets pro-
duisent sur les éléments ces différentes valeurs pour la propriété align-items ?
Nous finissons sur un quatrième projet. Le site de démonstration, nous permet de pousser encore plus loin
notre découverte de Flexbox.
Travail à faire
3..23 Ouvrir le site Web « développez » avec votre navigateur Web Firefox, puis lancer l’ins-
pecteur à partir du menu et des « outils de développement » ou encore avec la combi-
naison de touches du clavier : Ctrl + Maj + C
3..24 Ouvrir l’éditeur de style, puis modifier la valeur de la propriété flex-wrap du conteneur
de wrap en nowrap, puis wrap-reverse. Qu’observez-vous ? Quels effets produisent sur les
éléments ces différentes valeurs pour la propriété flex-wrap ?
Remarque : Vous pouvez aller encore plus loin en consultant cette page du tutoriel
d’OpenClassRooms.
3.2. En résumé
• Il existe plusieurs techniques pour positionner les blocs sur la page. Flexbox est la technique la
plus récente et de loin la plus puissante, que je vous recommande d'utiliser.
• Le principe de Flexbox est d'avoir un conteneur, avec plusieurs éléments à l'intérieur. Avec
display: flex; sur le conteneur, les éléments à l'intérieur sont agencés en mode Flexbox
(horizontalement par défaut).
• Flexbox peut gérer toutes les directions. Avec flex-direction, on peut indiquer si les éléments sont
agencés horizontalement (par défaut) ou verticalement. Cela définit ce qu'on appelle l'axe
principal.
• L'alignement des éléments se fait sur l'axe principal avec justify-content, et sur l'axe secondaire
avec align-items.
• Avec flex-wrap, on peut autoriser les éléments à revenir à la ligne s'ils n'ont plus d'espace.
• S'il y a plusieurs lignes, on peut indiquer comment les lignes doivent se répartir entre elles avec
align-content.
3.3. Application
Nous allons maintenant revenir sur notre page consacrée à Tim Berners-Lee. Vous débuterez votre travail
à la suite de l’exercice précédent (structuration de la navigation). Vous trouvez une figure représentant le
résultat final à obtenir après l’énoncé de l’exercice.
Exercice
3..25 Mettre en page le menu de navigation en alignant les différents éléments avec Flexbox.
Remarque : Vous retrouverez le résultat sur la branche correspondant à l’itération n°5 du dépôt
dédié.
4. Sources
• Site OpenClassRooms, en licence Creative Commons by nc-sa
• Le site de documentation « MDN Web docs » de la fondation Mozilla