Я пытаюсь вставить div в любую часть тела и сделать его position: absolute
относительным ко всему документу, а не к родительскому элементу с расширением position: relative
.
html
css
css-position
Тимоти Рул
источник
источник
<body>
тега, нет?Ответы:
Вам нужно будет разместить
div
внешнюю частьposition:relative
элемента и внутрьbody
.источник
position:fixed
иposition:absolute
не имеют такого же поведения. Фиксированный относится к области просмотра (а не к документу) и приведет к тому, что элемент всегда будет виден даже после прокрутки, потенциально вызывающей перекрытия и т. Д. Я понимаю, что могут быть веские причины для структуры html, но поскольку вопрос конкретно касается html и css, мой ответ правильный. Единственный способ без JS сделать его относительным к документу - это переместить его изposition:relative
элемента.Вы ищите
position: fixed
.Из MDN :
источник
Мое решение заключалось в использовании jQuery для перемещения div за пределы его родителя:
<script> jQuery(document).ready(function(){ jQuery('#loadingouter').appendTo("body"); }); </script> <div id="loadingouter"></div>
источник
Если вы не хотите прикреплять элемент к
body
, подойдет следующее решение.Я пришел к этому вопросу в поисках решения, которое работало бы без присоединения div к телу, потому что у меня был скрипт наведения курсора мыши, который я хотел запустить, когда указатель мыши наведен как на новый элемент, так и на элемент, который его породил. Если вы готовы использовать jQuery и вдохновлены ответом @Liam William:
var leftOffset = <<VALUE>>; var topOffset = <<VALUE>>; $(element).css("left", leftOffset - element.offset().left); $(element).css("top", topOffset - element.offset().top);
Это решение работает путем вычитания текущего левого и верхнего положения элемента (относительно тела), чтобы переместить элемент в 0, 0. Затем разместить элемент в любом месте относительно тела так же просто, как добавить смещение влево и вверх. значение.
источник
Это невозможно с простыми CSS и HTML.
Используя Javascript / jQuery, вы потенциально можете получить элементы
jQuery.offset()
в DOM и сравнить их,jQuery.position()
чтобы вычислить, где они должны отображаться на странице.источник
jQuery.offset({ left: 0 })
для победы!