<html> <head> <style type='text/css'> div { position: relative; border: 4px solid #ccc; height: 200px; overflow: hidden;} p { position: absolute; height: 100px; line-height: 100px;border: 2px solid blue;} </style> </head> <body> <div> <p id='a'style='left:-20px; z-index: 10;'>12342</p> </div> </body> <script type='text/javascript'> function $id(id){ return document.getElementById(id);}; var a = $id('a').offsetLeft; alert(a); </script> </html>
我实验了一下,当父元素设置overflow:hidden;的时候,offsetLeft为正就style.left加父元素的边框;为负就减。而父元素没设置overflow;hidden的时候,offsetLeft和style.left数值上是相等的。这是为什么????