28172 sujets

CSS et mise en forme, CSS3

Alut tout le monde,

Je vais peut-être dire une bétise, mais en consultant la page de Microsoft sur la propriété hasLayout ( http://msdn.microsoft.com/en-us/library/ms533776.aspx ), et qui liste les circonstances qui donnent cette propriété à un élément, je m'aperçois qu'il en manque une que j'ai remarqué aujourd'hui : la propriété overflow me semble aussi pouvoir donner la propriété layout, mais seulement si on donne à overflow la valeur hidden ou scroll (overflow:visible par exemple, ne donne pas hasLayout)
Modifié par hibou57 (24 Oct 2008 - 11:54)
Bonjour,

Non, overflow ne rentre pas le champ des propriétés conférant le haslayout. C'est justement pourquoi on fait intervenir zoom via les CSS en commentaires conditionnels pour reproduire dans IE6, via le haslayout, les effets CSS2.1 d'overflow:hidden ou auto sur les flottants...
Bonjour,

Heuuu.... pourtant je ne suis apparement pas le seul à l'avoir remarqué, parce qu'en cherchant confirmation sur le web, j'ai trouvé ceci : http://www.satzansatz.de/cssd/onhavinglayout.html où il est dit

" As of IE7, overflow became a layout-trigger.
overflow: hidden|scroll|auto
This property did not apply in prior versions, unless “layout” was added to the box by other triggers.
overflow-x|-y: hidden|scroll|auto
As part of the CSS3 box model module, overflow-x and -y are not widely implemented yet. They did not trigger hasLayout in prior versions of IE. "

Alors qui a tord et qui a raison ? Smiley decu

Sinon de mon côté je l'ai remarqué par hasard aujourd'hui...
Modifié par hibou57 (24 Oct 2008 - 11:30)
On parle avant tout d'IE6, là, et non d'IE7 Smiley cligne

Mais sinon, c'est effectivement en donnant ce rôle à overflow que Microsoft a débugué IE7 pour une partie des problèmes de flottants. Disons que dans ce cas, le haslayout devient simplement transparent. Cela ne fait pas de cette propriété un outil vraiment pertinent pour gérer les quelques autres soucis de haslayout encore présent dans IE7, et cela reste sans impact, évidemment, sur le principal objet du délit, c'est à dire IE6.
Oui, c'est vrai, pour IE6 ça n'est pas le cas. C'est en voulant le préciser parce que j'avais oublié de le faire que j'ai vu cette réponse à laquelle j'ai répondu (pfff... désolé, je ne suis pas trés litéraire aujourd'hui Smiley confused )

Par conte le hasLayout a tout de même une autre importace, un autre effet : un élément qui a le layout et qui se trouve dans un document qui a la propriété contentEditable, donne une selection "control range" au lieu d'une selection "text range".

C'est pour ça que je l'ai remarqué.

En fait ça m'enuyais, parce que je voulais me débarasser de hasLayout sur certains éléments pour cette raison (pour éviter d'avoir des "control range" en lieu et place de "text range"). Mais finalement j'ai trouvé une autre solution : je renvoi false sur les événement oncontrolselect (oui, oui, je sais, c'est propriétaire, mais faut faire avec, on a pas le choix).

Heuuu... désolé si j'ai un peu dévié, mais comme tout est liés comme souvent (enfin, beaucoup de choses qui n'en ont pas l'air sont liées entre elles).

Je m'excuse pour le dérangement Smiley langue ... et merci pour ces deux réponses interessantes Smiley biggrin
Modifié par hibou57 (24 Oct 2008 - 11:54)