Adakah yang bisa memberi tahu saya Perbedaan antara style = "position:absolute"
dan style = "position:relative"
dan bagaimana perbedaannya jika saya menambahkannya ke div
/ span
/ input
elements?
Saya menggunakan absolute
sekarang, tetapi saya ingin menjelajah relative
juga. Bagaimana ini akan mengubah pemosisian?
css
css-position
Varun
sumber
sumber
Jawaban:
Pemosisian absolut berarti bahwa elemen tersebut benar-benar keluar dari aliran normal tata letak halaman. Sejauh menyangkut elemen lainnya pada halaman, elemen yang benar-benar diposisikan tidak ada. Elemen itu sendiri kemudian ditarik secara terpisah, semacam "di atas" dari yang lainnya, pada posisi yang Anda tentukan menggunakan
left, right, top and bottom
atribut.Menggunakan posisi yang Anda tentukan dengan atribut ini, elemen kemudian ditempatkan pada posisi itu dalam elemen leluhur terakhirnya yang memiliki atribut posisi selain
static
(elemen halaman default ke statis ketika tidak ada atribut posisi yang ditentukan), atau badan dokumen (browser viewport) jika leluhur tersebut tidak ada.Misalnya, jika saya memiliki kode ini:
...
<div>
itu akan diposisikan 20px dari atas viewport browser, dan 20px dari tepi kiri yang sama.Namun, jika saya melakukan hal seperti ini:
... maka
inner
div akan diposisikan 20px dari atasouter
div, dan 20px dari tepi kiri yang sama, karenaouter
div tidak diposisikan denganposition:static
karena kami secara eksplisit mengaturnya untuk digunakanposition:relative
.Pemosisian relatif, di sisi lain, sama seperti menyatakan tidak ada pemosisian sama sekali, tetapi
left, right, top and bottom
atribut "mendorong" elemen keluar dari tata letak normalnya. Elemen lainnya di halaman masih ditata seolah-olah elemen tersebut berada di tempat normalnya.Misalnya, jika saya memiliki kode ini:
... maka ketiga
<span>
elemen akan duduk berdampingan tanpa tumpang tindih.Jika saya menyetel yang kedua
<span>
untuk menggunakan pemosisian relatif, seperti ini:... maka Span2 akan tumpang tindih dengan sisi kanan Span1 sebesar 5px. Span1 dan Span3 akan berada tepat di tempat yang sama seperti pada contoh pertama, meninggalkan celah 5px antara sisi kanan Span2 dan sisi kiri Span3.
Harapan itu menjelaskan sedikit.
sumber
Pemosisian relatif: Elemen membuat sumbu koordinatnya sendiri, di offset lokasi dari sumbu koordinat area pandang. Ini adalah bagian dari aliran dokumen tetapi bergeser.
Penentuan posisi absolut: Sebuah elemen mencari sumbu koordinat terdekat yang tersedia di antara elemen induknya. Elemen tersebut kemudian diposisikan dengan menentukan offset dari sumbu koordinat ini. Ini dihapus dari aliran normal dokumen.
Sumber
sumber
Anda pasti ingin melihat artikel pemosisian ini dari 'A List Apart'. Membantu mengungkap pemosisian CSS (yang menurut saya tidak masuk akal, sebelum artikel ini).
sumber
Dengan pemosisian CSS, Anda dapat menempatkan elemen tepat di tempat yang Anda inginkan di halaman Anda.
Saat Anda akan menggunakan pemosisian CSS, hal pertama yang perlu Anda lakukan adalah menggunakan posisi properti CSS untuk memberi tahu browser apakah Anda akan menggunakan pemosisian absolut atau relatif.
Kedua Posisi memiliki fitur yang berbeda. Dalam CSS Setelah Anda mengatur Posisi maka Anda dapat menggunakan atribut atas, kanan, bawah, kiri.
Posisi Mutlak
Posisi Relatif
Untuk memposisikan elemen secara relatif, posisi properti ditetapkan sebagai relatif. Perbedaan antara penentuan posisi absolut dan relatif adalah cara penghitungan posisi.
Selengkapnya: Posisi Relatif vs Mutlak
sumber
OK, jawaban yang sangat jelas di sini ... pada dasarnya relatif posisi relatif terhadap elemen sebelumnya atau jendela, sementara mutlak tidak peduli tentang unsur-unsur lain kecuali jika orang tua jika Anda menggunakan atas dan kiri ...
Lihatlah contoh yang saya buat untuk Anda untuk menunjukkan perbedaan ...
Anda juga dapat melihatnya beraksi, menggunakan css yang saya buat untuk Anda, Anda dapat melihat bagaimana posisi absolut dan relatif berperilaku:
sumber
Penentuan posisi absolut didasarkan pada koordinat tampilan:
^ menempatkan elemen di kiri atas jendela.
Posisi relatif relatif terhadap tempat elemen ditempatkan:
^ menempatkan elemen 1px ke bawah dan 1px dari kiri tempat asalnya :)
sumber
Relatif:
Elemen dengan
position: relative;
diposisikan relatif terhadap posisi normalnya.Jika Anda tidak menambahkan atribut pemosisian (atas, kiri, bawah, atau kanan) pada elemen relatif, hal itu tidak akan berpengaruh sama sekali pada pemosisiannya. Ini akan berperilaku persis sebagai
position: static
elemen.Tetapi jika Anda menambahkan beberapa atribut pemosisian lainnya, katakanlah, top: 10px ;, itu akan menggeser posisinya 10 piksel ke bawah dari tempat biasanya.
Elemen dengan jenis pemosisian ini dipengaruhi oleh elemen lain dan elemen itu sendiri juga memengaruhi elemen lain.
Mutlak:
Elemen with
position: absolute;
memungkinkan Anda menempatkan elemen apa pun tepat di tempat yang Anda inginkan. Anda menggunakan atribut posisi atas, kiri, bawah. dan hak untuk mengatur lokasi.Itu ditempatkan relatif terhadap leluhur non-statis terdekat. Jika tidak ada penampung seperti itu, itu ditempatkan relatif terhadap halaman itu sendiri.
Itu dihapus dari aliran normal elemen di halaman.
Sebuah elemen dengan tipe positioning ini tidak terpengaruh oleh elemen lain dan juga tidak mempengaruhi aliran elemen lainnya.
Lihat contoh penjelasan diri ini untuk kejelasan yang lebih baik. https://codepen.io/nyctophiliac/pen/BJMqjX
sumber
Absolute menempatkan objek (div, span, dll.) Di lokasi paksa absolut (biasanya ditentukan dalam piksel) dan relative akan menempatkannya dalam jumlah tertentu jauh dari lokasi biasanya. Sebagai contoh:
Mungkin membuat sisi kiri teks menghilang jika berada dalam jarak 20px ke tepi kiri layar.
sumber
position: absolute
dapat ditempatkan dimana saja dan tetap disana seperti 0,0.position: relative
ditempatkan dengan offset dari lokasi semula ditempatkan di browser.sumber
position: tindakan relatif sebagai elemen induk position: tindakan absolut anak dari posisi relatif. Anda bisa melihat contoh di bawah ini
sumber