Saya mencoba memasukkan div ke bagian mana pun dari tubuh dan membuatnya position: absolute
relatif terhadap seluruh dokumen dan bukan elemen induk yang memiliki file position: relative
.
html
css
css-position
Timothy Ruhle
sumber
sumber
<body>
tag, bukan?Jawaban:
Anda harus menempatkan bagian
div
luarposition:relative
elemen dan ke dalambody
.sumber
position:fixed
danposition:absolute
tidak memiliki perilaku yang sama. Perbaikan relatif terhadap viewport (bukan dokumen) dan akan menyebabkan item selalu terlihat bahkan setelah menggulir berpotensi menyebabkan tumpang tindih, dll. Saya memahami bahwa mungkin ada alasan yang valid untuk struktur html, tetapi karena pertanyaannya secara khusus tentang html dan css, jawaban saya benar. Satu-satunya cara tanpa JS untuk membuatnya relatif terhadap dokumen adalah dengan mengeluarkannya dariposition:relative
elemen.Anda sedang mencari
position: fixed
.Dari MDN :
sumber
Solusi saya adalah menggunakan jQuery untuk memindahkan div di luar induknya:
<script> jQuery(document).ready(function(){ jQuery('#loadingouter').appendTo("body"); }); </script> <div id="loadingouter"></div>
sumber
Jika Anda tidak ingin melampirkan elemen ke
body
, solusi berikut akan berfungsi.Saya datang ke pertanyaan ini mencari solusi yang akan bekerja tanpa melampirkan div ke tubuh, karena saya memiliki skrip gerakan mouse yang ingin saya jalankan saat mouse berada di atas elemen baru dan elemen yang menelurkannya. Selama Anda mau menggunakan jQuery, dan terinspirasi oleh jawaban @Liam William:
var leftOffset = <<VALUE>>; var topOffset = <<VALUE>>; $(element).css("left", leftOffset - element.offset().left); $(element).css("top", topOffset - element.offset().top);
Solusi ini bekerja dengan mengurangkan posisi kiri dan atas elemen saat ini (relatif terhadap badan) untuk memindahkan elemen ke 0, 0. Menempatkan elemen di mana pun Anda inginkan relatif terhadap badan semudah menambahkan offset kiri dan atas nilai.
sumber
Ini tidak mungkin hanya dengan CSS dan HTML.
Menggunakan Javascript / jQuery Anda berpotensi mendapatkan elemen
jQuery.offset()
ke DOM dan membandingkannyajQuery.position()
untuk menghitung di mana ia akan muncul pada halaman.sumber
jQuery.offset({ left: 0 })
Untuk kemenangan!