CSS相对位置/正常位置问题

时间:2011-05-18 13:42:14

标签: javascript css dom

根据w3schools,相对位置值定义如下。

relative - 元素相对于其正常位置定位,因此“left:20”将20个像素添加到元素的LEFT位置。

我知道我可以获得相对位置的DOM对象并使用它,我可以获得相对于原点的左侧或顶部位置。

我的问题是,我怎样才能获得“正常”的位置?

谢谢,

MJ

3 个答案:

答案 0 :(得分:0)

也许,我误解了你的问题,但这不是简单的减去相对偏移吗?

答案 1 :(得分:0)

“normal”位置是元素将与left:0; top:0;一起定位的位置。您可以通过减去当前位置的偏移量(在Chrome中测试)来获得此位置:

<!DOCTYPE html>
<html>
<head>
<title>Example</title>
<style type="text/css">
#container { width: 100px; height: 100px; margin: 100px auto; border: 1px solid red; }
#item { position: relative; top: 10px; left: 10px; width: 80px; height: 80px; border: 1px solid green; }
</style>
<script type="text/javascript">
window.onload = function () {
  var container = document.getElementById('container');
  var item = document.getElementById('item');
  var computed = window.getComputedStyle(item);
  item.innerHTML = 'Normal: (' + (item.offsetLeft - parseInt(computed.left))
    + ', ' + (item.offsetTop - parseInt(computed.top) + ')');
};
</script>
</head>
<body>
<div id="container"><div id="item"></div></div>
</body>
</html>

答案 2 :(得分:0)

到正常位置只需将位置值设置为: static

position:static