Discussion: CSS, attribut "clear"
Afficher un message
Vieux 19/03/2008, 02h10   #30
Laurent vilday
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: CSS, attribut "clear"

SAM a écrit :
> Laurent vilday a écrit :
>>
>> La méthode plus moderne est nettement plus simple et, oh bonheur, même
>> IE6 la comprend du premier coup sans passer par des hacks immondes :
>>
>> <div style="overflow:auto">
>> <div style="float:left; width:49%">
>> foo bar
>> </div>
>> <div style="float:left; width:49%">
>> foo bar
>> </div>
>> </div>

>
> Je sais pas ... pas essayé en aussi simple (quasi vide)


Faut essayer :p
Après avoir fouillé dans mes bookmarks, je tiens ça de ppk :
<http://www.quirksmode.org/css/clearing.html>

Sauf que il préconise d'utiliser overflow:hidden parce que IE Mac
affiche des scrollbars en auto. Ayant pris le parti d'ignorer purement
et simplement la version Mac de IE, overflow:auto sur le parent des
éléments flottants m'a jusqu'à présent *toujours* permis de manipuler
correctement tout ce beau monde, quelle que soit la complexité de la
mise en page et ce de façon uniforme à travers tous les navigateurs
"usuels".

> mais ... si, en efet ça améliore pour Fx (bien que je ne comprenne pas
> pourquoi un overflow peut régler la question),
> en tous cas dans IE, sans un arret de flottaison après le div conteneur
> .... pas de réel salut, suffit de mettre un bord à l'overflow pour voir.


Parce que la propriété "hasLayout" n'est pas définie par défaut pour
l'élément utilisé.
<http://www.satzansatz.de/cssd/onhavinglayout.html>

> ???? de mettre une largeur à l'overflow semble résoudre le blème
> résiduel ...
> Si c'est pas em...der le monde rien que pour le plaisir !


Parce que ajouter une largeur permet de définir à true la fameuse et
horrible propriété "hasLayout" (propriétaire) de IE6 et IE7 - supposée
avoir disparue de IE8 mais je n'ai pas pris le temps de vérifier pour
l'instant -

Perso, plutôt que d'attribuer des width à mes éléments juste parce que
IE possède cette saloperie de "hasLayout", je préfère lui appliquer dans
une CSS conditionnelle un truc tout bête :

* { zoom:1 }

Et hop, tous les éléments ont désormais la propriété "hasLayout" définie
à true pour *tous* les éléments avec ou sans width. Jamais testé en mode
quirks, je ne "travaille" que en mode de rendu strict, mais j'imagine
qu'en mode quirks on passe encore une fois dans d'autres cas propres à IE.

--
laurent
  Réponse avec citation
 
Page generated in 0,05616 seconds with 9 queries