Saya ingin meniru tata letak div Pinterest.com, khususnya bagaimana jumlah kolom menyesuaikan agar lebih / kurang sesuai pada perubahan ukuran browser dan penumpukan vertikal tidak bergantung pada ketinggian kolom yang berdekatan. Kode sumber menunjukkan bahwa setiap div adalah posisi absolut. Salah satu pendiri telah menjawab postingan Quora yang menyatakan hal itu dilakukan dengan jQuery dan CSS khusus. Saya ingin hasil diurutkan dari kiri ke kanan. Arahan apa pun yang Anda berikan untuk membuatnya sendiri akan sangat dihargai.
104
Jawaban:
Anda juga dapat memeriksa jQuery Plug-in Masonry , untuk fungsi semacam ini.
sumber
Saya menulis skrip Pinterest. ID tidak terkait dengan tata letak, dan digunakan untuk JS terkait interaksi lainnya. Inilah dasar cara kerjanya:
Sebelumnya:
Siapkan array:
Ulangi setiap pin:
Hasilnya ringan. Di Chrome, meletakkan satu halaman penuh dengan 50+ pin membutuhkan <10 md.
sumber
Kami merilis plugin jQuery karena kami mendapat pertanyaan yang sama beberapa kali untuk Wookmark . Ini menciptakan jenis tata letak yang persis seperti ini. Lihat di sini - plugin jQuery Wookmark
sumber
Setelah melihat semua opsi, saya akhirnya menerapkan tata letak yang mirip dengan Pinterest dengan cara ini:
Semua DIV adalah:
Hal ini membuat posisinya dalam baris lebih baik daripada saat diapungkan.
Kemudian ketika halaman dimuat, saya mengulang semua DIV di JavaScript untuk menghilangkan celah di antara mereka. Ini bekerja dengan baik jika:
Manfaat dari pendekatan ini - HTML Anda masuk akal untuk mesin telusur, dapat berfungsi dengan JavaScript yang dinonaktifkan / diblokir oleh firewall, urutan elemen dalam HTML sesuai dengan urutan logis (item yang lebih baru sebelum yang lebih lama)
sumber
Mereka membagi entitas dengan kolom dengan id (solusi buruk ... lebih baik gunakan nama kelas) dan kemudian menghitung posisi berdasarkan kelompok kolom
sumber
display: inline-block
saya kira, tetapi item dengan ketinggian vertikal berbeda tidak akan duduk bersama.float:left;
dan yang terakhir denganoverflow: hidden;
) dan menyimpan elemen di sanaMengapa Anda tidak mencoba ini, hal-hal js sederhana
http://vanilla-masonry.desandro.com/index.html
Atau bahkan ini dengan jQuery dan memiliki pemuatan gulir juga.
http://masonry.desandro.com/index.html
sumber
Anda dapat menggunakan float dan mengukur lebar div Anda menggunakan persentase bersama dengan min-width untuk memaksa div secara otomatis jatuh setelah lebar minimum tercapai? Ini cara kami membuatnya bekerja di http://www.goldtree.co.za/work
sumber