OVH Cloud OVH Cloud

Clear Both

6 réponses
Avatar
Le Fou
Salut,

Lorsqu'un élément en "float: left" (ou right) est inséré dans un bloc, la
balise de fin de ce bloc induit-elle un "clear: both" par défaut ?
En clair :
<div>
<p class="floatleft">...</p>
<p>...</p>
</div>
Y a-t-il besoin avant </div> de rajouter un élément en "clear: both" ?
D'après mes essais non. Mais est-ce exact et est-ce correct ?

--
A'tchao

Le Fou
http://perso.club-internet.fr/ehiller/
http://club.exocet.free.fr/
http://www.ffessm-cd84.com/

6 réponses

Avatar
Thibaut Allender
on 27/05/2004 19:40, Le Fou wrote :

Salut,

Lorsqu'un élément en "float: left" (ou right) est inséré dans un bloc, la
balise de fin de ce bloc induit-elle un "clear: both" par défaut ?



non

En clair :
<div>
<p class="floatleft">...</p>
<p>...</p>
</div>
Y a-t-il besoin avant </div> de rajouter un élément en "clear: both" ?



oui

D'après mes essais non. Mais est-ce exact et est-ce correct ?



si tu mets par exemple une image en float left, et que la hauteur de
texte que tu mets dans le <p> suivant est inferieure a la hauteur de
l'image, l'image debordera du div, preuve que le clear:both n'a pas lieu
automatiquement, et que donc il en faut un si tu ne veux pas que le div
soit moins haut que ton image (generalement, ca fait pagaille ;)

--
thibaut allender | freelance | web|system developer|designer
+32 496 26 75 76 | http://capsule.org *new version*
Avatar
Bobe
Le Fou nous a dit le 27/05/2004 19:40:

Lorsqu'un élément en "float: left" (ou right) est inséré dans un bloc, la
balise de fin de ce bloc induit-elle un "clear: both" par défaut ?
En clair :
<div>
<p class="floatleft">...</p>
<p>...</p>
</div>
Y a-t-il besoin avant </div> de rajouter un élément en "clear: both" ?
D'après mes essais non. Mais est-ce exact et est-ce correct ?




C'est juste à titre informatif, pour donner espoir (et envie), mais le W3C
réfléchit au problème:
http://www.w3.org/TR/2002/WD-css3-box-20021024/#the-clear-after

Dans ton cas, tu pourras mettre un clear-after: left; sur le dernier élément
de ton div (pour cela, il n'y aura qu'à utiliser la pseudo-classe :last-child :) )

Bon, par contre, c'est un document de travail.

--
Bobe (Aurélien Maille)
http://webnaute.net

"la vie d'un geek est un combat perpétuel contre l'imperfection"
Avatar
Le Fou
Thibaut Allender a
écrit

si tu mets par exemple une image en float left, et que la hauteur de
texte que tu mets dans le <p> suivant est inferieure a la hauteur de
l'image, l'image debordera du div, preuve que le clear:both n'a pas lieu
automatiquement, et que donc il en faut un si tu ne veux pas que le div
soit moins haut que ton image (generalement, ca fait pagaille ;)



Effectivement, je viens de m'en appercevoir ;-)
C'est exactement le cas de figure que j'expérimente en ce moment :
<div class="cadre">
<img class="floatleft" ...>
<p>...</p>
</div>
Le DIV est entouré de pointillés, le texte dans le <p> est très court et
l'image dépasse donc du DIV par le bas.
Pour y remédier je mets après le <p>...</p> un <br class="clearboth">
Mais ça ne m'emballe pas vraiment (et ne fonctionne pas sous IE 5.0 Win), je
préfèrerais un élément qui ne prenne pas de place (le <br> laisse une ligne
vide)...
Z'auriez une idée qui ne relève pas du bidouillage ?

--
A'tchao

Le Fou
http://perso.club-internet.fr/ehiller/
http://club.exocet.free.fr/
http://www.ffessm-cd84.com/
Avatar
Le Fou
Bobe a écrit

C'est juste à titre informatif, pour donner espoir (et envie), mais le W3C
réfléchit au problème:
http://www.w3.org/TR/2002/WD-css3-box-20021024/#the-clear-after

Bon, par contre, c'est un document de travail.



P'tain, "Working draft d'octobre 2002"...
Ils peuvent pas accélérer les choses ?
C'est vrai que ça donne envie mais au train où vont les choses c'est ma
descendance qui en profitera... ;-)

--
A'tchao

Le Fou
http://perso.club-internet.fr/ehiller/
http://club.exocet.free.fr/
http://www.ffessm-cd84.com/
Avatar
Thibaut Allender
on 28/05/2004 19:30, Le Fou wrote :

Pour y remédier je mets après le <p>...</p> un <br class="clearboth">
Mais ça ne m'emballe pas vraiment (et ne fonctionne pas sous IE 5.0 Win), je
préfèrerais un élément qui ne prenne pas de place (le <br> laisse une ligne
vide)...
Z'auriez une idée qui ne relève pas du bidouillage ?



un <hr> c'est mieux

avec

.clearboth {
clear: both;
visibility: hidden;
}

on doit pouvoir jouer sur les marges pour rendre ca completement transparent

--
thibaut allender | freelance | web|system developer|designer
+32 496 26 75 76 | http://capsule.org *new version*
Avatar
Thibaut Allender a ecrit :

on 28/05/2004 19:30, Le Fou wrote :

> Pour y remédier je mets après le <p>...</p> un <br class="clearboth">
> Mais ça ne m'emballe pas vraiment (et ne fonctionne pas sous IE 5.0 Win), je
> préfèrerais un élément qui ne prenne pas de place (le <br> laisse une ligne
> vide)...
> Z'auriez une idée qui ne relève pas du bidouillage ?



et le bateau de bateau ça ne vous convient pas ?

.spacer { clear:both; }

<div class="spacer"></div>



--
******** (enlever/remove [OTER_MOI] du/from reply url) *******
Stéphane MORIAUX : mailto:
Aide aux Pages Perso (images & couleurs, formulaire, CHP, JS)
http://perso.wanadoo.fr/stephane.moriaux/internet/
**************************************************************