The top
, bottom
, left
, dan right
properti yang digunakan dengan posisi untuk mengatur penempatan elemen. Mereka hanya berpengaruh pada elemen yang diposisikan, yang merupakan elemen dengan position
properti yang disetel ke selain static
. Sebagai contoh: relative
, absolute
, fixed
, atau sticky
.
div ( : || || auto || inherit; )
Anda dapat menggunakannya, misalnya, untuk mendorong ikon ke tempatnya:
button .icon ( position: relative; top: 1px; )
Atau posisikan elemen khusus di dalam wadah.
.container ( position: relative; ) .container header ( position: absolute; top: 0; )
Nilai untuk top
, bottom
, left
, dan right
dapat salah satu dari berikut ini:
- salah satu panjang CSS yang valid
- persentase dari elemen penampung tinggi (untuk
top
danbottom
) atau lebar (untukleft
danright
) auto
inherit
Elemen umumnya akan menjauh dari sisi tertentu jika nilainya positif, dan ke arahnya jika nilainya negatif. Pada contoh di bawah ini, panjang positif untuk top
memindahkan elemen ke bawah (menjauh dari atas) dan panjang negatif untuk top
akan memindahkan elemen ke atas (ke arah atas):
Lihat Pen
Top: nilai positif dan negatif oleh Matsuko Friedland (@missmatsuko)
di CodePen.
Posisi
Penempatan elemen dengan nilai top
, bottom
, left
, atau right
tergantung pada nilai untuk position
. Mari kita lihat apa yang terjadi ketika kita menetapkan nilai yang sama untuk top
elemen dengan nilai yang berbeda position
.
static
The top
properti tidak berpengaruh pada unsur unpositioned (elemen dengan position
set untuk static
). Beginilah cara elemen diposisikan secara default. Anda bisa menggunakan position: static;
sebagai salah satu metode untuk membatalkan efek top
pada sebuah elemen.
relative
Ketika top
diset pada sebuah elemen dengan position
set to relative
, elemen tersebut akan bergerak ke atas atau ke bawah sehubungan dengan penempatan aslinya dalam dokumen.
Lihat Pen
Top: relative oleh Matsuko Friedland (@missmatsuko)
di CodePen.
absolute
Saat top
disetel pada elemen dengan position
set ke absolute
, elemen akan bergerak ke atas atau ke bawah dalam kaitannya dengan leluhur terdekat yang diposisikan (atau dokumen, jika tidak ada leluhur yang diposisikan).
Dalam demo ini, kotak merah muda di sebelah kiri diposisikan 50px ke bawah dari atas halaman karena tidak memiliki elemen leluhur yang diposisikan. Kotak merah muda di sebelah kanan diposisikan 50px ke bawah dari atas induknya, karena induk memiliki position
dari relative
.
Lihat Pen
Top: absolute oleh Matsuko Friedland (@missmatsuko)
di CodePen.
fixed
Saat top
disetel pada elemen dengan position
set to fixed
, elemen akan bergerak ke atas atau ke bawah dalam kaitannya dengan area pandang browser.
Lihat Pen
Top: diperbaiki oleh CSS-Tricks (@ css-trick)
di CodePen.
Pada pandangan pertama, sepertinya tidak ada perbedaan antara absolute
dan fixed
. Perbedaannya terlihat ketika Anda membandingkannya pada halaman yang memiliki konten yang cukup untuk di-scroll. Saat Anda menggulir ke bawah, fixed
elemen posisi selalu dalam tampilan, sementara absolute
elemen posisi menggulir menjauh.
Lihat Pen
Scrolling: diperbaiki vs. absolut oleh CSS-Tricks (@ css-trick)
di CodePen.
sticky
Saat top
disetel pada elemen dengan position
set to sticky
, elemen akan bergerak ke atas atau ke bawah dalam kaitannya dengan leluhur terdekat dengan kotak gulir (atau area pandang, jika tidak ada leluhur yang memiliki kotak gulir), terbatas pada batas elemen penampungnya.
Pengaturan top
pada sticky
elemen diposisikan tidak berbuat banyak kecuali wadah lebih tinggi dari itu, dan Anda memiliki konten yang cukup untuk gulir. Seperti halnya fixed
, elemen akan tetap terlihat saat Anda menggulir. Tidak seperti fixed
, elemen akan tidak terlihat setelah mencapai tepi elemen penampungnya.
Lihat Pen
Scrolling: fixed vs. sticky by CSS-Tricks (@ css-trick)
di CodePen.
Gotchas
Pengaturan sisi berlawanan
Anda dapat menetapkan nilai untuk masing-masing top
, bottom
, left
, dan right
pada satu elemen. Saat Anda menetapkan nilai untuk sisi berlawanan ( top
dan bottom
, atau left
dan right
), hasilnya mungkin tidak selalu seperti yang Anda harapkan.
Dalam kebanyakan kasus, bottom
diabaikan jika top
sudah disetel, dan right
diabaikan jika left
sudah disetel. Ketika arah disetel ke rtl
(kanan ke kiri), left
diabaikan alih-alih right
. Agar setiap nilai memiliki efek, elemen harus position
disetel ke absolute
atau fixed
dan height
disetel ke auto
(default).
Dalam contoh ini, kami menetapkan top
, bottom
, left
, dan right
untuk `20px`, dan mengharapkan setiap sisi kotak batin untuk menjadi 20px jauh dari sisi luar kotak:
Lihat
Pengaturan Pena atas, bawah, kiri, dan kanan dengan CSS-Tricks (@ css-trick)
di CodePen.
Saat diperbaiki tidak relatif terhadap viewport
Elemen dengan position
set ke fixed
tidak selalu diposisikan dalam kaitannya dengan viewport. Ini akan diposisikan relatif terhadap nenek moyang terdekatnya dengan transform
, perspective
atau filter
set properti untuk apa pun selain none
, jika ada.
Menambah atau menghapus ruang
Jika Anda telah memposisikan elemen dan menemukan bahwa sekarang ada ruang kosong atau tidak cukup ruang di tempat yang Anda harapkan, ini mungkin berkaitan dengan apakah elemen masuk atau keluar dari alur dokumen.
Ketika sebuah elemen dikeluarkan dari alur dokumen, itu berarti ruang yang semula digunakan pada halaman menghilang. Ini adalah kasus ketika elemen diposisikan absolute
atau fixed
. Dalam contoh ini, kotak berisi elemen yang diposisikan secara absolut telah diciutkan karena elemen yang diposisikan secara absolut telah dihapus dari aliran dokumen:
Lihat
alur Dokumen Pena oleh Matsuko Friedland (@missmatsuko)
di CodePen.
Dukungan Browser
Anda dapat mengintip, tetapi tidak ada masalah lintas browser untuk top
properti tersebut. Gunakan sesuka hati.