Michael Leibson wrote: > Hi again, Alan (and anyone else interested in this topic); > > I've been trying to understand the satzansatz article, as well as other > articles to which it refers. > One of these is the article by Markus Mielke, of MS, " "HasLayout" Overview", > at > http://msdn.microsoft.com/library/default.asp?url=/library/en-us/IETechCol/cols/dnexpie/expie20050831.asp. > > Among other things, that article seems to say that once a CSS property > triggers IE's hasLayout, the affected > block element is given a new 'block formatting context', which I take to mean > that -- in terms of some parameters, > like dimensions -- it no longer refers to those of its parent, but to those > of some previous ancestor (eg, > body, rather than containing div). If so, this might be the explanation why > the margins of my absolutely positioned "p" > didn't operate in relation to its containing div, but instead extended past > that parent. > > Am I on the right track??
Hi Michael Yes it may have to do with hasLayout. For the example you are referring to, you need to give IE a little extra like a right offset. p { margin: 10%; position:absolute; right:0; } By adding right:0;, the paragraph margin right edge will sit against the right edge of it's containing block, the container. Using pixels instead of a percentage. p { margin: 40px; position:absolute; } Now IE will observe the right margin. Remember that absolute positioning is a CSS property and value that creates a new 'block formatting context' [1] and in IE causes the element to gain hasLayout. > If I am, then it would seem to me that the most direct workaround/hack would > be to somehow hide the > p's {position: absolute;} and the WIDTH, and every other CSS-provoked > hasLayout trigger from IE, > but not from all other browsers -- yet still somehow convey those directives > to IE in a 'less offensive' manner. > > Am I still headed in the right direction? > > If so, could you (or anyone else interested in this topic) direct me to a > site that not only gives such a hack, > but also explains it? > > Thanks, in advance, for any insights you'd care to share! > > - Michael The total reverse, give IE as much hasLayout as it needs, but then no more. IEs' rendering engine, uses the subtle layout triggers to render CSS layouts right. Absolute positioning, floats, a box with a dimension, etc, etc, would not work if the element didn't gain hasLayout. Don't be discouraged, but be challenged. Just develop various good layout techniques, and you will learn to make IE submissive to you at each step. Along the way, you will also come to learn the many fixes for IE by just giving an element hasLayout. These are the hacks/fixes which you should be seeking. [1] <http://www.w3.org/TR/CSS21/visuren.html#block-formatting> Kind Regards, Alan ______________________________________________________________________ css-discuss [EMAIL PROTECTED] http://www.css-discuss.org/mailman/listinfo/css-d IE7 information -- http://css-discuss.incutio.com/?page=IE7 List wiki/FAQ -- http://css-discuss.incutio.com/ Supported by evolt.org -- http://www.evolt.org/help_support_evolt/