- From: Garrett Smith <dhtmlkitchen@gmail.com>
- Date: Fri, 25 Apr 2008 19:02:01 -0700
- To: "Alan Gresley" <alan@css-class.com>
- Cc: "Sylvain Galineau" <sylvaing@microsoft.com>, "Mike Wilson" <mikewse@hotmail.com>, Www-style <www-style@w3.org>
On Fri, Apr 25, 2008 at 5:35 PM, Alan Gresley <alan@css-class.com> wrote:
> Garrett Smith wrote:
>
>
> > Some confusion must have lead to Anne's assumption that hasLayout
> > determines this behavior. In fact, that claim is provably false.
> >
> > <!doctype html>
> > <style>
> > body { margin:0 }
> > div { border:10px solid }
> > div#x { border:20px solid orange; zoom:1 }
> > </style>
> > <div><div id=x></div></div>
> >
> > javascript:alert(x.offsetTop + ", " + x.currentStyle.hasLayout)
> >
> > IE7 => 10, true
> >
> > Shows that the offsetTop includes the parentNode's border-width and
> > also has a layout.
> >
>
>
> What Anne has said is correct. You have given hasLayout to wrong element.
> HasLayout is on the child div#x instead the parent. Reverse that and you may
> see the difference.
>
>
What Anne said was "that is exactly the hasLayout bug I was trying to avoid".
The example didn't back up any claim of hasLayout. That is a useful
example though. We have a case where the element has position: static,
and its parent node has position: static, and when the parentNode has
zoom, it becomes the offsetParent.
Here is a case where hasLayout is triggered by height, not zoom. Watch
what happens:
<!doctype html>
<style>
body { margin:0 }
div { border:10px solid; height: 100px; }
div#x { border:20px solid orange; position: relative }
</style>
<div><div id=x></div></div>
javascript:alert((document.getElementById('x').offsetParent.tagName) +
document.getElementById('x').offsetTop + ", " +
document.getElementById('x').parentNode.currentStyle.hasLayout)
IE says: HTML10, true
offsetParent: HTML
offsetTop: 10
parent hasLayout: true
The element has position relative.
Garrett
>
> <!doctype html>
> <style>
> body { margin:0 }
> div { border:10px solid; zoom:1 }
>
> div#x { border:20px solid orange; }
>
> </style>
> <div><div id=x></div></div>
>
>
> Alan
>
Received on Saturday, 26 April 2008 02:02:33 UTC