Вопрос об относительном положении CSS / нормальном положении

#javascript #css #dom

#javascript #css #dom

Вопрос:

Согласно w3schools, значение относительного положения определяется следующим образом.

относительный — элемент позиционируется относительно его нормального положения, поэтому «left: 20» добавляет 20 пикселей к ЛЕВОМУ положению элемента.

Я знаю, что могу получить объект DOM из любого, относительно которого я позиционировал, и, используя это, я могу получить левую или верхнюю позицию относительно источника.

Мой вопрос в том, как я могу получить «нормальное» положение?

Спасибо,

mj

Ответ №1:

Возможно, я неправильно понял ваш вопрос, но разве это не было бы простым вычитанием относительного смещения?

Комментарии:

1. Относительное смещение может быть примерно таким: слева: -20 сверху: 100. Вычесть это из чего?

2. Найдите положение с помощью JS — возможно, это поможет quirksmode.org/js/findpos.html

Ответ №2:

«нормальное» положение — это то, где элемент будет располагаться с 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>
  

Комментарии:

1. Требуется ли для выполнения этой работы div контейнера или вы можете обойтись одним div «item»?

2. Контейнер предназначен только для демонстрации.

Ответ №3:

для нормального положения просто установите значение position равным: static

 position:static