Saya mencoba membuat grafik batang horizontal 100% bertumpuk menggunakan HTML dan CSS. Saya ingin membuat bilah menggunakan DIVs
dengan warna latar belakang dan lebar persentase tergantung pada nilai yang ingin saya grafik. Saya juga ingin memiliki garis kisi untuk menandai posisi sewenang-wenang di sepanjang grafik.
Dalam eksperimen saya, saya sudah mendapatkan bilah untuk ditumpuk secara horizontal dengan menetapkan properti CSS float: left
. Namun, saya ingin menghindari itu, karena tampaknya benar-benar mengacaukan tata letak dengan cara yang membingungkan. Selain itu, garis kisi tampaknya tidak berfungsi dengan baik ketika bilah melayang.
Saya pikir bahwa posisi CSS harus dapat menangani ini, tetapi saya belum tahu bagaimana melakukannya. Saya ingin dapat menentukan posisi beberapa elemen relatif terhadap sudut kiri atas wadah mereka. Saya mengalami masalah seperti ini secara teratur (bahkan di luar proyek grafik khusus ini), jadi saya ingin metode yang:
- Peramban silang (idealnya tanpa terlalu banyak peretasan peramban)
- Berjalan dalam mode Quirks
- Sejelas / sebersih mungkin, untuk memfasilitasi kustomisasi
- Selesai tanpa JavaScript jika memungkinkan.
sumber
Jawaban:
Anda benar bahwa posisi CSS adalah cara yang harus ditempuh. Berikut ini adalah daftar singkat:
position: relative
akan tata letak elemen relatif terhadap dirinya sendiri. Dengan kata lain, elemen diletakkan dalam aliran normal, lalu dihapus dari aliran normal dan diimbangi dengan nilai apa pun yang Anda tentukan (atas, kanan, bawah, kiri). Penting untuk dicatat bahwa karena dihapus dari aliran, elemen lain di sekitarnya tidak akan bergeser dengannya (gunakan margin negatif sebagai gantinya jika Anda menginginkan perilaku ini).Namun, Anda kemungkinan besar tertarik dengan
position: absolute
yang akan memposisikan elemen relatif terhadap sebuah wadah. Secara default, wadah adalah jendela peramban, tetapi jika elemen induk memilikiposition: relative
atauposition: absolute
menyetelnya, maka itu akan bertindak sebagai induk untuk penentuan posisi koordinat untuk anak-anaknya.Untuk menunjukkan:
Dalam contoh itu, sudut kiri atas
#box
akan 100px ke bawah dan 50px kiri dari sudut kiri atas#container
. Jika#container
tidakposition: relative
disetel, koordinat#box
akan relatif ke sudut kiri atas port tampilan browser.sumber
Anda harus secara eksplisit mengatur posisi wadah induk bersama dengan posisi wadah anak. Cara khas untuk melakukan itu adalah sesuatu seperti ini:
sumber
Saya tahu saya terlambat tetapi saya harap ini membantu.
Berikut ini adalah nilai untuk properti posisi.
posisi: statis
Ini standar. Ini berarti elemen akan terjadi pada posisi yang biasanya.
posisi: diperbaiki
Ini akan mengatur posisi elemen sehubungan dengan jendela browser (viewport). Elemen yang diposisikan tetap akan tetap pada posisinya bahkan ketika halaman bergulir.
(Ideal jika Anda ingin tombol gulir ke atas di sudut kanan bawah halaman).
posisi: relatif
Untuk menempatkan elemen di lokasi baru relatif terhadap posisi aslinya.
CSS di atas akan memindahkan elemen #myelem 30px ke kiri dan 30px dari atas lokasi sebenarnya.
posisi: absolut
Jika kita ingin elemen ditempatkan pada posisi yang tepat di halaman.
CSS di atas akan memposisikan elemen #myelem pada posisi 30px dari atas dan 300px dari kiri di halaman dan itu akan bergulir dengan halaman.
Dan akhirnya...
posisi relatif + absolut
Kita dapat mengatur properti posisi elemen induk ke relatif dan kemudian mengatur properti posisi elemen anak ke absolut . Dengan cara ini kita dapat memposisikan anak relatif terhadap orang tua pada posisi absolut.
Kita dapat melihat pada gambar di atas elemen # div-2 diposisikan di sudut kanan atas di dalam elemen #container .
GitHub: Anda dapat menemukan HTML dari gambar di atas di sini dan CSS di sini .
Semoga tutorial ini membantu.
sumber
Posisi absolut memposisikan elemen relatif terhadap leluhur yang diposisikan terdekat. Jadi letakkan
position: relative
di wadah, lalu untuk elemen anak,top
danleft
akan relatif ke kiri atas wadah selama elemen anak milikiposition: absolute
. Informasi lebih lanjut tersedia dalam spesifikasi CSS 2.1 .sumber
Jika Anda perlu memposisikan elemen relatif terhadap elemen yang mengandungnya terlebih dahulu, Anda perlu menambahkan
position: relative
elemen kontainer . Elemen anak yang ingin Anda posisikan relatif ke orang tua harus dimilikiposition: absolute
. Cara pemosisian absolut bekerja adalah bahwa hal itu dilakukan relatif terhadap elemen induk pertama yang relatif (atau mutlak) diposisikan . Jika tidak ada induk yang diposisikan relatif , elemen akan diposisikan relatif terhadap elemen root (langsung ke elemen HTML).Jadi jika Anda ingin memposisikan elemen anak Anda di kiri atas wadah induk, Anda harus melakukan ini:
Anda akan mendapat manfaat besar dari membaca artikel ini . Semoga ini membantu!
sumber