CSS相对定位/普通定位问题

3
根据w3schools的定义,相对定位的取值如下所示。
相对定位 - 元素相对于其正常位置定位,因此“left:20”会将20像素添加到元素的LEFT位置。
我知道我可以获取任何相对定位元素的DOM对象,并使用它来获取相对于原点的左侧或顶部位置。
我的问题是,如何获取“正常”位置?
谢谢,
mj
3个回答

0

“正常”位置是指元素的位置将使用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>

这个容器 div 是必要的吗?还是只需一个“item” div 就可以了? - mj_
这个容器仅用于演示。 - Alex Netkachov

0

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

position:static

0
也许我误解了您的问题,但这不就是相对偏移量的简单减法吗?

相对偏移量可以是像left:-20 top:100这样的东西。从什么中减去? - mj_
1
使用JavaScript查找位置 - 可以尝试访问http://www.quirksmode.org/js/findpos.html。 - AllisonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接