Di CSS, apa perbedaan antara pemosisian statis (default) dan pemosisian relatif?
css
static
positioning
css-position
jrdioko
sumber
sumber
position: relative
, dan Anda tidak pernah mengetikposition: static
:)Jawaban:
Pemosisian statis adalah model pemosisian default untuk elemen. Mereka ditampilkan di halaman tempat mereka dirender sebagai bagian dari aliran HTML normal. Elemen statis diposisikan tidak mematuhi
left
,top
,right
danbottom
aturan:Pemosisian relatif memungkinkan Anda untuk menentukan offset tertentu (
left
,top
dll) yang relatif terhadap posisi normal elemen dalam aliran HTML. Jadi jika saya memiliki kotak teks di dalam a,div
saya dapat menerapkan pemosisian relatif pada kotak teks untuk menampilkannya di tempat tertentu relatif terhadap tempat biasanya ditempatkan di dalamdiv
:Ada juga pemosisian absolut - di mana Anda menentukan lokasi yang tepat dari elemen relatif terhadap seluruh dokumen, atau elemen yang diposisikan secara relatif berikutnya lebih jauh dari pohon elemen :
Dan ketika a
position: relative
diterapkan ke elemen induk dalam hierarki:Perhatikan bagaimana elemen posisi-absolut kita terikat oleh elemen yang memiliki posisi relatif.
Dan terakhir ada yang diperbaiki. Pemosisian tetap membatasi elemen ke posisi tertentu di viewport, yang tetap di tempatnya selama pengguliran:
Anda juga dapat mengamati perilaku bahwa elemen dengan posisi tetap tidak menyebabkan scroll karena tidak dianggap terikat oleh viewport:
Sedangkan elemen yang diposisikan secara mutlak masih terikat oleh viewport dan akan menyebabkan pengguliran:
..kecuali tentu saja elemen induk Anda gunakan
overflow: ?
untuk menentukan perilaku scroll (jika ada).Dengan pemosisian absolut dan pemosisian tetap, elemen diambil dari aliran HTML.
sumber
static
danrelative
elemen adalah sama, kecuali dengan yang terakhir Anda dapat memposisikan ulang relatif ke posisi aslinya , bukan ke elemen yang memuatnya - di situlah tempatnyaabsolute
. Juga, seperti elemen apa pun yang diposisikan menggunakan nilai selainstatic
yang dapat Anda gunakanz-index
.position: static;
alih-alih hanya menggantinya denganposition: relative;
secara default? Jika seseorang tidak ingin memposisikan item selaintop: 0;
danleft: 0;
kemudian jangan melakukannya, bukan? Apakah ada alasan yang mendasari mengapaposition: static;
masih diperlukan sebagai bagian dari CSS?Anda dapat melihat gambaran umum sederhana di sini: W3School
Juga, jika saya ingat dengan benar, ketika mendeklarasikan relatif elemen, secara default akan tetap di tempat yang sama seperti yang seharusnya, tetapi Anda mendapatkan kemampuan untuk benar-benar memposisikan elemen di dalamnya secara relatif ke elemen ini, yang menurut saya sangat berguna di masa lalu.
sumber
Sebagai jawaban atas "mengapa CSS masih mengimplementasikan position: static;" dalam satu scenerio, menggunakan position: relative untuk induk dan position: absolute untuk anak membatasi lebar penskalaan anak. Dalam sistem menu horizontal, di mana Anda bisa memiliki 'kolom' link, menggunakan 'width: auto' tidak bekerja dengan orang tua relatif. Dalam hal ini, mengubahnya menjadi 'statis' akan memungkinkan lebar menjadi variabel yang bergantung pada konten di dalamnya.
Saya menghabiskan beberapa jam bertanya-tanya mengapa saya tidak bisa menyesuaikan wadah saya berdasarkan jumlah konten di dalamnya. Semoga ini membantu!
sumber
Posisi relatif memungkinkan Anda menggunakan atas / bawah / kiri / kanan untuk penentuan posisi. Statis tidak akan membiarkan Anda melakukan ini kecuali Anda menggunakan parameter margin. Ada perbedaan antara Top dan margin-top.
Anda tidak perlu menggunakan statis seperti defaultnya
sumber
Posisi relatif relatif terhadap aliran normal. Posisi relatif elemen itu (dengan offset) adalah relatif terhadap posisi di mana elemen tersebut akan normal jika tidak dipindahkan.
sumber
Matthew Abbott punya jawaban yang sangat bagus.
Mutlak dan barang-barang diposisikan relatif taat
top
,left
,right
danbottom
perintah (offset) di mana statis diposisikan item tidak.Item yang diposisikan secara relatif memindahkan offset dari tempatnya biasanya di html.
Item yang diposisikan absolut memindahkan offset dari dokumen atau elemen yang diposisikan relatif berikutnya ke atas pohon DOM.
sumber
Statis: Elemen yang diposisikan STATIC adalah apa yang kita dapatkan dengan DEFAULT (Pemosisian objek normal).
Relatif: Relatif dengan posisinya saat ini, tetapi dapat dipindahkan. Atau elemen posisi RELATIF diposisikan relatif terhadap dirinya sendiri.
sumber
statis dan relatif adalah atribut posisi. relatif digunakan untuk banyak kegunaan. Tidak untuk satu pun. Namun perlu diingat bahwa statis dan relatif tidak membahayakan aliran dokumen normal Html. static adalah posisi default ketika Anda menulis elemen apa pun ke Html. Jika sebuah elemen memiliki posisi relatif, elemen itu dapat diposisikan relatif terhadap tempat asalnya. Jika Anda ingin mengatur elemen dari ruang kecil, gunakan relative position sehingga Anda tidak perlu menambahkan margin, padding, dll jika elemen tersebut memiliki posisi relative dan memiliki elemen turunan. Di sini kita bisa melakukan pengukuran relatif terhadap induknya. Jika Anda menambahkan lebar 10% ke anak, itu berarti (lebar + bantalan) x10%. Tetapi Anda tidak menambahkan kata kunci relatif, Anda mendapatkan lebarx10%. Selain itu, penggunaan kerabat yang paling penting adalah; Anda dapat memposisikan elemen apa pun di atasnya.
sumber