This is related to the “hasLayout bug” of IE. The relatively positioned #panel
parent doesn’t have layout and hence IE forgets to redraw its children when it get resized/repositioned.
The problem will go if you add overflow: hidden;
to the relatively positioned #panel
parent.
#panel { position: relative; overflow: hidden; border: solid 1px black; }
In depth background information about this IE bug can be found in the excellent reference “On having layout” and then for your particular problem specifically the chapter “Relatively positioned elements”:
Note that
position: relative
does not trigger hasLayout, which leads to some rendering errors, mostly disappearing or misplaced content. Inconsistencies might be encountered by page reload, window sizing and scrolling, selecting. With this property, IE offsets the element, but seems to forget to send a “redraw” to its layout child elements (as a layout element would have sent correctly in the signal chain of redraw events).
The overflow
property triggers the element to have layout, see also the chapter “Where Layout Comes From”:
As of IE7,
overflow
became a layout-trigger.