1. 默认有8px的margin! 与边框无关
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div{padding: 40px 50px; border: 10px solid gray} #div1{position: relative; background-color: red} #div2{position: relative; background-color: green} #div3{position: relative; background-color: orange} </style> </head> <body id="body1"> <div id="div1"> <div id="div2"> <div id="div3"> </div> </div> </div> <script> window.onload = function () { var oDiv3 = document.getElementById('div3') var p = getPos(oDiv3); console.log(p.left + ":" + p.top); //108 88 function getPos(obj) { var pos = {left : 0, top : 0}; while(obj){ pos.left += obj.offsetLeft; pos.top += obj.offsetTop; obj = obj.offsetParent; } return pos; } } </script> </body> </html>