Positionnement

Le positionnement des éléments html dans une page est une notion importante pour la mise en page. Les principes sont simples mais les interférences entre les boîtes d'une même page rendent la maîtrise de ces notions assez difficile. Lisez le cours qui suit ainsi que les pages référencées (menu www), traitez les exercices. Seule la pratique permettra une aisance dans l'utilisation de ces notions.

position: static;

Mode par défaut, de ce fait très rarement utilisé dans les déclarations.

position: relative;

Chaque bloc se positionne dans le flux par rapport à son positionnement normal dans le flux.

Pour voir certains des problèmes pouvant se poser, modifier la déclaration top: 10px par exemple à 30px : on force une boîte à sortir de son positionnement normal, elle peut chevaucher une autre boîte qui, elle, continue à se placer normalement dans le flux.

Changer la valeur négative en valeur positive pour comprendre comment le positionnement est défini.

Testez d'autres modifications.

position: fixed;

La boîte est retirée du flux normal et positionnée par rapport au conteneur initial (c'est à dire par rapport à la fenêtre d'affichage du navigateur).

Par exemple, le menu gauche de cette page est en position : fixed; left: 5px; top : 30%; : même quand on descend dans la page, il reste à 5px du bord de la fenêtre et son bord supérieur est à 30% de la hauteur du bord supérieur de la fenêtre.

position: absolute;

La boîte est retirée du flux normal et positionnée par rapport à son bloc conteneur ou plutôt par rapport au premier ancêtre lui-même déclaré en position relative ou absolute -- ce qui explique que l'on déclare souvent des blocs en position:relative sans déclarer de position afin que ce bloc soit bien le référentiel dans un placement absolu de leur fils.

Pour avoir une idée des problèmes qui peuvent se poser, supprimer par exemple la déclaration de hauteur pour la boîte parent et observez.

Tentez aussi de remplir de texte la boîte parent : une partie du texte sera cachée par la petite boîte (alors que dans le paragraphe suivant concernant float, le texte va "contourner" la boîte flottante").

Tentez d'autres modifications.

float

float:right

La déclaration float: right sur un élément html va faire 'flotter' la boîte de l'élément concerné à la droite de la boîte de son conteneur (l'élément parent).

float:left

Avec cette déclaration, la boîte flotte à gauche de la boîte parent.

clear

On peut règler certains débordements comme ci-dessous.

Décommentez les deux règles commentées pour en voir l'effet.