Faire le quiz close

Comment utiliser le positionnement flottant

#1 Utilisation classique open

Ce type de positionnement a été par le passé très utilisé, notamment pour faire des structures de site web multicolonnes. Il a été avantageusement remplacé par des structures à base de inline-block, de flexbox voir de grille grid.

Cependant, un assemblage utilisé pour habiller une photo avec du texte est encore très utilisé.

Ci-dessous, la photo est positionnée en flottant au moyen de la déclaration float:right;. La photo est sortie du flux d'une manière un peu particulière. Le texte, s'écoule autours de celle-ci, ce qui est la preuve que même sortie du flux, il la voit. Dans ce cas, l'habillage de la photo est quasi parfait.

Habillage d'une photo en flottant

#2 Un exemple pratique open

Toutefois, il peut y avoir une imperfection au niveau de l'affichage, car la hauteur du conteneur est calculée par rapport au texte, qui est le seul enfant dans le flux. On peut dire dans le flux de son parent qui est le conteneur, car, si le conteneur descend, je veux dire si vous mettez d'autres éléments HTML au-dessus du conteneur, alors la photo descend aussi avec le conteneur. Ici un exemple, où il y a moins de texte, avec une hauteur qui peut être inférieure à celle de la photo. Dans ce cas, la photo déborde de son conteneur.

Débordement sur un flottant
Tester le code

Pour éviter cet inconvénient, vous pouvez ajouter une ligne de séparation hr en bas du conteneur.

La ligne hr en bas du conteneur

En utilisant la propriété clear avec la valeur both, vous devez demander à ce que la ligne ne soit pas superposable à un élément flottant, ici la photo. La ligne hr prendra alors place après la photo et la taille du conteneur sera dimensionnée en conséquence. La ligne hr est dans le flux et elle ne peut pas être superposée à la photo donc le conteneur prend la bonne taille.

Vous pouvez ensuite cacher la ligne de séparation avec un visibility, à la valeur hidden. Ce sera plus esthétique, et la ligne restera dans le flux. Attention, pas de display avec none, car ça retirerait la ligne du flux et ce serait le retour à la case départ.

Sur l'image ci-dessous, vous pouvez constater l'efficacité du fonctionnement avec le hr.

Débordement correctement géré sur un float
Tester le code

Pour finir, il faut quand même que je précise que, vous pouvez placer votre photo du côté gauche en faisant un float:left; en lieu et place du float:right; 😄 .