这与IE的“ hasLayout错误”有关。相对定位的
#panel父级没有布局,因此IE在调整大小/位置后会忘记重绘其子级。
如果将其添加
overflow: hidden;到相对定位的
#panel父级,则问题将会解决。
#panel { position: relative; overflow: hidden; border: solid 1px black; }有关此IE错误的深入背景信息,可以在出色的参考资料“关于布局”中找到,然后针对您的特定问题,特别是在“相对位置元素”一章中:
请注意,
position: relative它不会触发hasLayout,这会导致一些渲染错误,大多数情况下是内容消失或放置错误。页面重新加载,窗口大小调整和滚动,选择可能会遇到不一致的情况。使用此属性,IE会偏移元素,
但似乎忘记了向其布局子元素发送“重绘” (因为布局元素在重绘事件的信号链中会正确发送)。
该
overflow属性触发元素进行布局,另请参阅“布局来自何处”一章:
从IE7开始,
overflow成为布局触发。



