Html & Css

Positionnement en Css

La propriété Css position permet d'agir sur le positionnement du bloc concerné dans le flux d'affichage du navigateur. La description des valeurs possibles de cette propriété permet de mieux comprendre son action.

position: static;

Il s'agit du positionnement par défaut.

position: relative;

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

position: fixed

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

Avec ce code, la boîte d'identifiant id="enHautadroite" sera placée en haut à droite de la fenêtre (et y reste même lorsqu'on descend dans la page). C'est le cas des boutons de navigation qui reste fixé à droite. Il faut alors déclarer des propriétés left, right, top ou bottom pour indiquer où positionner le conteneur.

position : absolute

La boîte est retirée du flux normal. Elle se positionne par rapport au premier ancêtre (conteneur) 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 ses fils).

Un cas particulier : les boîtes «flottantes»

Avec la propriété float, la boîte est d'abord positionnée selon le flux normal puis retirée et positionnée le plus à droite ou le plus à gauche à l'intérieur de son conteneur. Le contenu du bloc conteneur va alors entourer la boîte flottante.

Avec ce code, les images flotteront à droite dans leur boîte conteneur.
C'est le cas de l'image ci-contre.

Des sites pour se former

L'objectif de cet exercice est d'observer les comportements.

En commentant/décommentant les sélecteurs de paragraphes p, tester les divers positionnements possibles vis-à-vis du div conteneur. Observer alors les divers problèmes (débordement du conteneur, blocs se superposant, ...).

Observer la différence d'alignement entre float: left; et display: inline-block;.

Observer ce qu'il se passe lorsqu'on modifie min-height en height pour le div:last-of-type.

  • Affichage à obtenir ?
  • Une solution ?

  • Dans le code ci-dessous, quel est le référentiel pour le placement absolu des fils ?
  • Modifier le code pour que le placement absolu (premier fils) se fasse par rapport au père.
  • Affichage à obtenir ?
  • Une solution ?

Définir le style Css afin que l'image apparaisse disposée de la façon suivante :

float

Le cadre est une bordure de l'élément div.

L'image est disposée à l'aide du paramètre float.

  • Affichage à obtenir ?
  • Une solution ?

La situation suivante se produit assez souvent :
un bloc (premier bloc noir) contient des éléments flottants (bloc orange), mais le bloc flottant a une hauteur trop grande et dépasse donc sur le bloc suivant (second bloc noir).

Sans modifier les dimensions et marges des trois blocs, modifier le code pour que le flottant ne déborde pas sur le second bloc noir.

  • Affichage à obtenir ?
  • Une solution ?

Dans le fichier qui suit, sans toucher au code Html, définir le Css pour obtenir une page semblable à :

entete

Lorsqu'on survole le cercle 2 :

entete

Lorsqu'on survole le cercle 3.1 :

entete

Le bandeau est centré horizontalement dans la page et il a une largeur de 800px.

  • Affichage à obtenir ?
  • Une solution ?