xwartz / xwartz.github.com

Home Page
https://xwartz.github.com/
1 stars 0 forks source link

存在滚动时,内部元素超出滚动区域 #19

Closed xwartz closed 9 years ago

xwartz commented 9 years ago

当父元素或者父元素的上层...设置了 overflow: auto 或者 overflow:scroll,然后内部元素设置 position: absolute; 内部元素是可以超出滚动区域的。

但是当父元素设置了 'position: relative;',内部元素就无法超出滚动区域,父元素 position: absolute; 是可以超出的。

将父元素的父元素设置 'position: relative;',也是不能超出滚动区域,直到在设置 overflow: auto 元素的父元素,才可以超出。 这里本来还觉得很诡异,因为之前代码里层级很多,然后发现只有在父元素三至四层时 设置 'position: relative;' 内部元素可以超出滚动区。其实这里的三至四层父元素,已经在滚动区域外部了,也就是内部元素 position: absolute; 参照的定位元素已经在滚动区域外部,所以才能超出滚动区域。

xwartz commented 9 years ago

这里还有一个可以注意的地方是,即使将参照定位内部的元素设置overflow: hidden; ,也不会阻止元素超出滚动区域,这应该就是 absolute 属性脱离文档流的原因