13. Développement Web - TP N°13





Résultat attendu :

Résultat TP13_1
onglets_sans_css.html

Résultat TP13_2
onglets_avec_css.html

Notez que la police d'affichage
a été modifiée en Verdana





13.1. Objectif

On désire créer un panneau à onglets, ce que l'on appelle TabbedPane en Java. Ce système permet d'afficher dans la même zone, un ensemble d'informations, et en modifiant le texte lorsque l'on sélectionne l'un des onglets.

Il existe plusieurs manières de réaliser ce panneau à onglet. On opte ici pour une solution basée sur les listes non numérotée comprenant :

13.1.1. Construction de la page HTML

Créer un fichier onglets.html qui contiendra un titre h1 de libellé "Onglets avec HTML et CSS".

13.1.2. Construction des onglets

Créer une liste ul dans laquelle chaque li contient :

Ensuite :

13.2. Application d'un style

Créer un fichier onglets.css et y faire référence dans le fichier HTML.

13.2.1. body

Pour la balise body, fixer la police à Verdana en 14 pixels.

13.2.2. h1

Centrer le texte de la balise h1.

13.2.3. class ul.onglets

Définir une classe .onglets qui sera associée à la balise ul, pour laquelle :

Dans le fichier HTML asjouter la classe .onglets à la liste ul.

13.2.4. class ul.onglets li

Pour les li, modifier le display à inline-block.

13.2.5. label

Pour le label, on définit les propriétés suivantes :

13.2.6. classe .un_panneau

Pour les panneaux, on va fixer leurs dimensions et leur positionnement :

13.2.7. Gestion des input

A présent, on définit le comportement des input ainsi que des label et div associés :

Une première règle indique que pour tout input de type radio, on fixe le display à none

Une deuxième règle indique que pour tout label lié à un champ input (de type radio) coché, dont l'identifant commence par "onglet", la couleur de fond devient blanche et la couleur du texte passe au noir :

.onglets input[id^="onglet"]:checked + label {   
  background-color: white;
  color: black;
}

Enfin, une dernière règle indique que tous les éléments dont :

doivent être affichés avec un display de valeur block.

.onglets input[id^="onglet"]:checked ~ [id^="panneau"] {
  display: block;
}

13.3. Derniers réglages

Modifier le premier input en lui ajoutant l'attribut checked de manière à faire en sorte que le premier panneau associé au premier onglet soit affiché.

Vous constaterez, si vous avez suivi toutes les consignes, que cela fonctionne mais que pour le premier panneau, le texte déborde. Pour régler le problème, il faut associé aux propriétés du panneau une propriété overflow :

Essayez de tester ces trois possibilités.