Cours HTML/CSS – 15 Octobre 2025

Introduction

Prochain cours : évaluation.

Au programme d’aujourd’hui : les formulaires, la position CSS, et peut-ĂȘtre une introduction Ă  Flexbox.

Les formulaires

Au programme aujourd’hui : formulaire, CSS position, et peut-ĂȘtre Flexbox.

Zones de saisie et backend

Les zones de saisie permettent de collecter des donnĂ©es. Ces donnĂ©es sont envoyĂ©es Ă  un serveur (backend), qui les traite. Pour l’instant, nous n’aborderons pas le backend.

L’élĂ©ment <form>

Le formulaire contient tous les champs de saisie. Les attributs principaux :

Les champs de saisie

On précise le type du champ pour aider le navigateur :


<input type="email">
<input type="password">
<input type="number">
<input type="date">

Le type indique ce qui est attendu et permet d’éviter les erreurs.

Bouton submit

Le bouton submit permet de soumettre le formulaire. ⚠ Attention Ă  ne pas confondre button et input type="submit" :


<input type="submit" value="OK">

L’attribut value dĂ©finit le texte affichĂ© sur le bouton.

Attribut hidden

hidden permet de masquer des Ă©lĂ©ments Ă  l’utilisateur, pour confort visuel ou pour transmettre des informations inutiles Ă  l’utilisateur final. ⚠ Ce n’est pas un mĂ©canisme de sĂ©curitĂ©.


<input type="hidden" name="info" value="valeur">

Checkbox et radio


<input type="checkbox"> <!-- choix multiple -->
<input type="radio">    <!-- choix unique -->

Placeholder et label

Le placeholder guide l’utilisateur mais n’est pas suffisant : il disparaĂźt si l’utilisateur tape un espace et peut ĂȘtre difficile Ă  lire (gris clair sur fond blanc). Exemple de format attendu : jj/mm/aaaa.


<label for="texte">Texte :</label>
<input type="text" id="texte" name="texte" placeholder="jj/mm/aaaa">

L’attribut name nomme la valeur pour le backend. Pas besoin de label pour les boutons submit.

Fieldset et legend

Ces balises permettent de regrouper des champs pour une meilleure organisation et pour faciliter le traitement cÎté backend :


<fieldset>
    <legend>Informations personnelles</legend>
    <label for="nom">Nom :</label>
    <input type="text" id="nom" name="nom">
</fieldset>

Position CSS

Il faut comprendre le flux : la maniĂšre dont les Ă©lĂ©ments s’affichent et s’enchaĂźnent par dĂ©faut dans la page.

La propriĂ©tĂ© position permet de modifier le comportement d’un Ă©lĂ©ment dans ce flux.

Position relative


.element {
    position: relative;
    top: 10px;
    left: 0;
}

âžĄïž Cela dĂ©place l’élĂ©ment par rapport Ă  sa position d’origine dans le flux (ici, 10px vers le bas).

Position absolute


.element {
    position: absolute;
    top: 10px;
}

Relative et absolute fonctionnent ensemble :

💡 Astuce : ce positionnement “sort” l’élĂ©ment du flux, comme s’il Ă©tait sur un calque. On peut ainsi superposer des Ă©lĂ©ments (par exemple, deux images presque identiques dans une mĂȘme div).

Ce type de positionnement est souvent un dernier recours : il existe d’autres mĂ©thodes plus modernes pour la mise en page.

Position fixed

fixed retire aussi l’élĂ©ment du flux, mais le positionne par rapport Ă  la fenĂȘtre (viewport).

Exemple typique : un bouton “Retour en haut” positionnĂ© Ă  10px de la droite et 100px du haut.


.back-to-top {
    position: fixed;
    right: 10px;
    top: 100px;
}

âžĄïž Les valeurs de top, left, right, bottom peuvent ĂȘtre nĂ©gatives.

Position sticky

sticky est un positionnement hybride entre relative et fixed.

⚠ À utiliser avec prĂ©caution : un header complet en sticky n’est pas recommandĂ©. De plus, une nav sticky doit disposer d’un espace libre pour pouvoir “coller” au scroll.

Voir experimentations dans le projet html2 : lien vers projet html 2

Tableau d’explication dĂ©taillĂ© sur les sĂ©lecteurs CSS

SélecteurDescriptionExemple
>SĂ©lectionne uniquement les enfants directs.div > p → sĂ©lectionne les p enfants directs d’un div.
(espace)SĂ©lectionne tous les descendants (mĂȘme lointains).div p → sĂ©lectionne tous les p Ă  l’intĂ©rieur d’un div.
+SĂ©lectionne l’élĂ©ment directement suivant.h1 + p → sĂ©lectionne le premier p aprĂšs un h1.
~SĂ©lectionne les frĂšres suivants.h1 ~ p → sĂ©lectionne tous les p qui suivent un h1.
::before / ::afterAjoutent du contenu avant ou aprÚs un élément (pseudo-éléments)..box::after { content:""; }

Introduction Ă  Flexbox

Faute de temps, Flexbox n’a Ă©tĂ© qu’évoquĂ© rapidement. Cependant :