Je suis fixe.

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, traitez les exercices. Seule la pratique permet 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, à gauche de cette page, un paragraphe avec le texte "je suis fixe" est déclaré avec ce code css:


#fixe{
	position: fixed;
	border:1px solid orange;
	top:50%;
	left:3px;
}

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 observer.

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. Essayez dans le code ci-dessus.

clear

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

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