Efek Masonry Hanya dengan CSS
Teknik ini sudah pernah dibahas dengan cukup detail di CSS-Tricks. Hanya saja Saya tidak habis pikir mengapa beliau tetap mempertahankan deklarasi column-count
untuk memecah area menjadi beberapa kolom dan menggunakan media queries untuk mengurangi jumlah kolom pada saat ukuran layar peramban menyempit. Padahal jika kita sudah menentukan lebar masing-masing item dengan ukuran yang sama, kita bisa menggunakan column-width
untuk menentukan lebar kolom tetap tanpa harus melibatkan media queries untuk mengurangi jumlah kolom pada saat ukuran layar semakin sempit. column-width
akan menciptakan kolom-kolom dengan jumlah yang bisa menyesuaikan diri berdasarkan ruang yang tersisa. Sudah tertulis dengan jelas dalam spesifikasi:
.container {
column-width:150px;
column-gap:5px; /* Margin kanan/kiri antarkolom */
}
img {
display:block;
width:100%;
height:auto;
margin:0 0 5px 0; /* Margin bawah antargambar */
}
Item Bukan Gambar
Ada satu hal yang harus diperhatikan jika Anda ingin menciptakan efek/tata letak seperti ini pada elemen yang bukan merupakan gambar, yaitu deklarasi display
berupa inline-block
. Mendeklarasikan perintah ini akan mencegah perpotongan yang tak terduga pada masing-masing item karena CSS3 Kolom secara normal akan berusaha untuk membuat masing-masing kolom menjadi sama tinggi. Beberapa harus terpaksa dipotong di bagian bawah mengingat properti CSS ini memang sebenarnya berbasis teks:
.container {
column-width:150px;
column-gap:5px; /* Margin kanan/kiri antarkolom */
}
.item {
display:inline-block; /* Mencegah pemotongan item yang tak terduga */
margin:0 0 5px 0; /* Margin bawah antaritem */
padding:10px;
background-color:black;
color:white;
}
Ini yang Saya maksud sebagai perpotongan yang tidak diduga dan tidak dikehendaki:
Tidak tahu apa itu Masonry?
43 Comments:
Nice Info Sob... :-bd
By Gojek Ewako, at Monday, October 7, 2013 at 1:32:00 PM GMT+7
ternyata dalam pemikiran saya yang dulu itu sama mas, tidak semestinya menggunakan media queries untuk mengurangi jumlah kolom. secara keseluruhan kita bisa andalkan column-width menentukan lebar, pengalaman yang berharga mas \o/
By Admin, at Monday, October 7, 2013 at 3:18:00 PM GMT+7
superb...thanks for sharing
By BloggerSpice, at Monday, October 7, 2013 at 4:27:00 PM GMT+7
Wew, bener juga ya, pake CSS3 kolom :-bd
By budkalon, at Monday, October 7, 2013 at 8:41:00 PM GMT+7
mantap tenannn :-bd
By Anonymous, at Monday, October 7, 2013 at 9:35:00 PM GMT+7
simple ternyata ya.. top markotop \o/
By Kang Ismet, at Monday, October 7, 2013 at 9:54:00 PM GMT+7
mantab kang :) salam damai dari blogger sulawesi :D
- damai -
By no data, at Monday, October 7, 2013 at 9:54:00 PM GMT+7
Yang ane cermati dari materi diatas, justru pada CSS yang ini
column-gap:5px;
Apakah ada perbedaan dengan dengan margin:0 5px;, atau bisa diartikan sama saja
By Kang Kapuk, at Monday, October 7, 2013 at 10:20:00 PM GMT+7
Perlu pelan-pelan ini untuk mempelajarinya kodenya juga lumayan banyak :)
By Anonymous, at Monday, October 7, 2013 at 10:54:00 PM GMT+7
Iya baru tau tentang hal ini akau kak, mohon penjelasannya lebih detil kak taufik ?
By IRIL SAGITA, at Tuesday, October 8, 2013 at 7:36:00 AM GMT+7
Kolom Saya gambarkan sebagai *****
Ini adalah hasil tampilan dari deklarasi margin:0 5px yang diterapkan pada tiga buah kolom:
[5px] ***** [5px|5px] ***** [5px|5px] ***** [5px]
Ini adalah hasil tampilan dari deklarasi column-gap:5px menggunakan CSS3 Kolom:
***** [5px] ***** [5px] *****
Hasilnya akan sangat berbeda. Selain itu ada juga istilah margin collapsing, yaitu sebuah keadaan ketika dua buah elemen yang berhadapan, dimana masing-masing sisi yang berhadapan memiliki margin dengan besaran tertentu, maka salah satu margin yang ukurannya lebih kecil akan luluh tergantikan oleh margin yang lebih besar pada sisi yang lainnya. Ini berlaku untuk elemen blok:
<!-- Yang kita harapkan: -->
<div style="margin-bottom:5px;"> ... </div>
[5px]
[20px]
<div style="margin-top:20px;"> ... </div>
<!-- Hasil yang didapatkan: -->
<div style="margin-bottom:5px;"> ... </div>
[20px]
<div style="margin-top:20px;"> ... </div>
Sikap ini akan menghilang jika masing-masing elemen dikenai deklarasi float bernilai left atau right, atau dikenai posisi absolut:
<div style="margin-bottom:5px;float:left;width:100%;"> ... </div>
[5px]
[20px]
<div style="margin-top:20px;float:left;width:100%;"> ... </div>
Kesimpulannya adalah, karena hasilnya yang tidak konsisten dan terkesan rumit, dan biasanya kita juga hanya butuh menerapkan margin pada sela-sela kolom saja, maka lebih baik gunakan column-gap yang lebih konsisten. Secara, kalau kita ingin menambahkan margin kiri dan kanan pada setiap item, lalu yang ingin didorong oleh margin tersebut itu apa? (di sisi kanan maupun kiri sudah tidak ada elemen lagi, masing-masing item berada sendirian di dalam kolom).
By Taufik Nurrohman, at Tuesday, October 8, 2013 at 8:06:00 AM GMT+7
kalau berbicara ttg attr column- jd inget ama attr calc :-bd
By Beben Koben, at Tuesday, October 8, 2013 at 10:24:00 AM GMT+7
simple ternyata ya.. top markotop \o/
By no data, at Tuesday, October 8, 2013 at 9:54:00 PM GMT+7
Luarbiasa mas, saya hanya bisa kagum, terimaksih banyak ilmunya mas
By M. Alex Joenaedi, at Wednesday, October 9, 2013 at 8:17:00 AM GMT+7
mau tanya diluar tema mas...
gimana ya cara pasang generator border radius di blog sperti punya mas....
salam sukses ... \o/
By Goro, at Wednesday, October 9, 2013 at 10:37:00 AM GMT+7
pro.
By Damar Zaky, at Wednesday, October 9, 2013 at 5:38:00 PM GMT+7
Artikel yang sangat bermanfaat.
Dengan hanya menggunakan CSS3 efek masonry ternyata dapat dibuat.
tapi bagi seorang web design cara ini masih jarang untuk diterapkan karena pertimbangan browser yang mendukung CSS3 (column-width dan column-gap) umumnya perambaan modern dan diluar sana masih ada orang yang menggunakan komputer dengan IE9 (perambaan lama) kebawah.
By Unknown, at Thursday, October 10, 2013 at 7:21:00 PM GMT+7
sekarang saya baru tau makasih banyak :)
By Anonymous, at Thursday, October 10, 2013 at 9:09:00 PM GMT+7
css pun jadi. :-d
By Saeful Rahman, at Thursday, October 10, 2013 at 11:49:00 PM GMT+7
butuh konsentrasi buat menerapkannya :-bd :-bd .
By Unknown, at Saturday, October 12, 2013 at 2:11:00 PM GMT+7
Update Galleria, gak perlu lagi pakai masonry... \o/
By Salim, at Saturday, October 12, 2013 at 5:45:00 PM GMT+7
Baca ginian jam 4 pagi dan blom tidur ... kpala ngebul . Total kang materinya ... :-bd
By Ichi Hikaru, at Sunday, October 13, 2013 at 4:26:00 AM GMT+7
Sip.... :-bd
By uki, at Sunday, October 13, 2013 at 7:15:00 AM GMT+7
Saya masih binggung, Niat hati mau nanya juga column-gap yang di permasalahkan yang berhubungan dengan masalah perpotongan kolom-kolom item yang tidak layak sehingga tidak kelihatan indah dan menggangu tapi sudah ada yang menanyakan dan sudah di bahas jadi cuma bisa bilang Terima kasih kang kapuk yang sudah bertanya dan mas taufik yang sudah menjelaskan panjang lebar.
By Suwardi, at Tuesday, October 15, 2013 at 6:09:00 AM GMT+7
Yang saya tertarik disini adalah efect di " TENTANG " keren mas
By Sopala Multapa, at Tuesday, October 15, 2013 at 6:10:00 PM GMT+7
nice share :-bd
ditunggu kunjungan baliknya mas bro.
http://indradp-share.blogspot.com/
By Indra DP, at Wednesday, October 16, 2013 at 11:42:00 AM GMT+7
Mas Ada Template 2 Kolom Gk ? :) Kalo Ada Ane :-bd Likers
By Muhamad Ishak Hanapi, at Wednesday, October 16, 2013 at 2:54:00 PM GMT+7
kang nggon tombol close latest comment ketutup tombol maintanceee
By MbahDoyok, at Thursday, October 17, 2013 at 4:03:00 PM GMT+7
keren nih DTE, baru lihat lagi.. Wajah baru semangat baru ya :)
ane simpan dan pelajari dulu script CSS nya, siapa tahu nanti dibutuhkan.
By Anonymous, at Friday, October 18, 2013 at 12:53:00 AM GMT+7
om taufik hebat, DTE:] Full jquery :)
- salam damai -
By no data, at Friday, October 18, 2013 at 10:42:00 PM GMT+7
nih yang paling rajin blogwalking :-d
By Kang Ismet, at Saturday, October 19, 2013 at 9:33:00 AM GMT+7
bisa dikasih efek transisi ga mas?
By Anonymous, at Sunday, October 20, 2013 at 7:15:00 AM GMT+7
Aduh. pusing lagi melihat kode-kode pemrograman web pdahal waktu itu rajin belajar kotak-atik kode web. tapi berhenti karena situasi. akhirnya lihat kode di atas bikin pusing,hehe
By Elbuy, at Thursday, October 24, 2013 at 3:41:00 PM GMT+7
emang lebih oke pakai column-width untuk memecah beberapa konten tapi tetap menyesuaikan diri sama lebar browser. saya juga gak abis pikir si chris pake column-count.
by the way, sistem notifikasi komentarnya kemana nih bro? kemaren² masih kelihatan.
By kontol ajing pepek, at Friday, October 25, 2013 at 1:30:00 AM GMT+7
saya coba pelajari dulu mas...!
By Anonymous, at Sunday, October 27, 2013 at 12:14:00 PM GMT+7
iya betul ini, ane masih milih pake margin dibanding column-gap.
By kontol ajing pepek, at Tuesday, October 29, 2013 at 5:12:00 PM GMT+7
Cuma mau ngasih info ni kak, Saya masih menunggu postingan selanjutnya kak ?
By Anonymous, at Thursday, October 31, 2013 at 6:08:00 PM GMT+7
Semua file unduhan itu bentuknya HTML statis, tidak mungkin kalau cuma diutamakan ke Wordpress saja.
By Taufik Nurrohman, at Sunday, November 3, 2013 at 4:29:00 PM GMT+7
Mas Kalau Efek Masonry nya di tetapkan ke Postingan (seperti pulsk) bagaimana ya?
By Unknown, at Monday, November 11, 2013 at 5:35:00 PM GMT+7
udah saya coba di blog saya, dan berhasil seperti matriks dimensi 3, tapi tampilan post urutannya dari yang terbaru itu vertikal (atas ke bawah terus ke kekanan), kalo pake js masonry, urutan post itu horizontal (atas ke kanan terus kebawah), yang saya ingin tahu apakah ada pengaturan khusus agar urutan post css masonry sama seperti js masonry?
js masonry pada browser lama (mozilla 19 -) tidak tampil apapun :'(
By Fahru Rofi, at Wednesday, December 11, 2013 at 8:15:00 AM GMT+7
Itu salah satu kekurangan dari metode ini (soal urutan). Tidak nyangka ada juga yang tanya soal ini.
By Taufik Nurrohman, at Wednesday, December 11, 2013 at 9:00:00 PM GMT+7
iya tetep saya gunakan karena template awal, postingan kurang rapi sebelum js masonrynya jalan :D
dan saya gunakan juga untuk sidebar footer, hasilnya menurut saya juga pas untuk blog saya. thanks buat jawabannya pak
By Fahru Rofi, at Thursday, December 12, 2013 at 2:56:00 AM GMT+7
ka taufik, ajarin bikin efek loading kayak blog kang ismet dong ;)
By Dwi, at Thursday, December 12, 2013 at 11:02:00 AM GMT+7
Post a Comment
<< Home