IE + overflow: hidden + innerHTML == disaster
So, once again, IE has tested my patience … and lost.
Here’s the scoop:
I have a div styled with a width, height and an overflow set to hidden [so it qualifies for IE's oh-so-crucial "hasLayout" attribute]. In essence this div will be populated with content dynamically with JS using the inner HTML property via an ajax call. I have some custom scrollbars I built to scroll the div [hence hiding the overflow content -- therefore hiding and chrome scrollbars] … Simple enough, right? I’ve seen this done about a dozen times….
This works flawlessly in Firefox [as expected] … In IE, however, the inner content of the div would spill out into the layout as if it were on a different z-index. I tried manually setting the height and overflow CSS properties every time the script would populate the div, I even went as far as adding the inner content piece by piece [in this case the content is an unsorted list [ul] with one or many [li] children] … that didn’t work.
Then I remembered that IE was written by retards and tried something that really makes no sense: I changed the position to relative. Now, this property pertains to the element’s position within the DOM, not how the overflow functions within the element.
So, position == outside, overflow == inside…..
Me - 1
IE - 0
thank you, thank you, and THANK YOU
I’ve spent the all day with that bug, and eventually find the solution here :)
You’re right, they really are retards!
nice layout, by the way.
see you, david
david
February 11, 2008
Excelent!
I am Brazilian and you save me!
:-)
MaurĂcio Hernaski
April 3, 2008
Can u show an example?
James
April 15, 2008
thank you, in my case I changed the position to absolute !!! So, it’s really 1:0, for you
Russellmd
April 26, 2008
THANK YOU Googleplex Factorial times!
This fixed my problem, too.
William L. Graham
May 15, 2008
after one day and a half I saw your article. Thank you!
razvan
June 19, 2008
Stupid IE. Thank you for this.
kyla
June 30, 2008
Perfect. Thanks to you my scalp still has hair :D
James
July 3, 2008