2011-08-10 52 views
0

为什么position方法不是在这种情况下返回[left: 100, top: 10]为什么position方法不会返回期望值?

<!DOCTYPE HTML> 
<html> 
<head> 
<style> 
#parent1 { 
    width: 300px; 
    height: 200px; 
    border: solid 9px pink; 
} 

#child1 { 
    position: relative; 
    left: 100px; 
    top: 10px; 
    width: 100px; 
    height: 100px; 
    border: solid 5px green; 
} 
</style> 
<script src="http://jquery-local/jquery.all.js"></script> 
<script type="text/javascript"> 
(function ($) { 
    $(document).ready(function() { 
     console.log($('#child1').position()); 
    }); 
})(jQuery); 
</script> 
</head> 
<body> 

<div id="parent1"> 
    <div id="child1"></div> 
</div> 

</body> 
</html> 

是获得通过css方法的位置的唯一途径?

+1

它会返回什么? –

回答

0

对我的作品 - 在this JSFiddle,我得到

left: 119 
top: 19 

占了10px的最高值加上周围元素的9px边框。

position()可能不是你想要的东西,虽然 - 它检索位置relative to the offset parent.在这种情况下,它不会有所作为,因为没有偏移父母,但如果你想在文档,使用位置代替.offset()

0

对我而言,它返回:[117,27]。

首先,因为孩子的位置是相对于父母的,所以孩子的坐标只与父母的坐标相对。这意味着父母的任何定位(例如默认身体边距)都会添加到孩子的位置。此外,还添加了另一个9像素的父级边框。如果您将身体的边距设置为0,那么孩子的位置是[109,19] :)

相关问题