Dengan HTML berikut, metode apa yang paling mudah untuk menampilkan daftar sebagai dua kolom?
<ul>
<li>A</li>
<li>B</li>
<li>C</li>
<li>D</li>
<li>E</li>
</ul>
Tampilan yang diinginkan:
A B
C D
E
Solusinya harus dapat bekerja di Internet Explorer.
Jawaban:
Peramban Modern
memanfaatkan modul kolom css3 untuk mendukung apa yang Anda cari.
http://www.w3schools.com/cssref/css3_pr_columns.asp
CSS:
http://jsfiddle.net/HP85j/8/
Browser Warisan
Sayangnya untuk dukungan IE Anda memerlukan solusi kode yang melibatkan JavaScript dan manipulasi dom. Ini berarti bahwa kapan saja isi daftar berubah, Anda perlu melakukan operasi untuk menyusun ulang daftar menjadi kolom dan mencetak ulang. Solusi di bawah ini menggunakan jQuery untuk singkatnya.
http://jsfiddle.net/HP85j/19/
HTML:
JavaScript:
CSS:
EDIT:
Seperti yang ditunjukkan di bawah ini akan memesan kolom sebagai berikut:
sementara OP meminta varian yang cocok dengan yang berikut:
Untuk menyelesaikan varian, Anda cukup mengubah kode sebagai berikut:
sumber
A B
(elemen kedua harus ditambahkan di sebelah kanan), tetapi dalam contoh Anda adalahA E
.Saya melihat solusi @ jaider yang bekerja tetapi saya menawarkan pendekatan yang sedikit berbeda yang menurut saya lebih mudah untuk dikerjakan dan yang saya lihat bagus di seluruh browser.
Secara default daftar yang tidak dipesan menampilkan posisi bullet di luar tetapi kemudian di beberapa browser akan menyebabkan beberapa masalah tampilan berdasarkan cara peramban meletakkan situs web Anda.
Untuk menampilkannya dalam format:
dll. gunakan yang berikut ini:
Ini akan menyelesaikan semua masalah Anda dengan menampilkan kolom. Semua yang terbaik dan terima kasih @orang asing karena respons Anda membantu membimbing saya untuk menemukan ini.
sumber
Saya mencoba memposting ini sebagai komentar, tetapi tidak dapat menampilkan kolom dengan benar (sesuai pertanyaan Anda).
Anda meminta:
AB
CD
E
... tetapi jawaban yang diterima sebagai solusi akan kembali:
IKLAN
MENJADI
C
... jadi jawabannya salah atau pertanyaannya adalah.
Solusi yang sangat sederhana adalah dengan mengatur lebar barang Anda
<ul>
dan kemudian mengapung dan mengatur lebar<li>
barang Anda seperti ituContoh di sini http://jsfiddle.net/Jayx/Qbz9S/1/
Jika pertanyaan Anda salah, maka jawaban sebelumnya berlaku (dengan perbaikan JS karena kurangnya dukungan IE).
sumber
Saya suka solusi untuk peramban modern, tetapi peluru tidak ada, jadi saya tambahkan sedikit trik:
http://jsfiddle.net/HP85j/419/
sumber
list-style-position: inside;
ini adalah solusi yang lebih baik bagi peluru untuk muncul dengan benar.Inilah solusi yang mungkin:
Potongan:
Dan itu dilakukan.
Untuk 3 kolom gunakan
li
lebar 33%, untuk 4 kolom gunakan 25% dan seterusnya.sumber
Ini adalah cara paling sederhana untuk melakukannya. Hanya CSS.
sumber
Anda dapat menggunakan CSS hanya untuk mengatur dua kolom atau lebih
sumber
Ini dapat dicapai dengan menggunakan properti css penghitungan kolom pada div induk,
Suka
lihat ini untuk lebih jelasnya.
Cara membuat daftar DIV mengambang muncul di kolom, bukan baris
sumber
column-count
tidak akan menampilkan item dalam urutan yang benar. Misalnya, tampilan yang diinginkan di baris pertama adalahA B
(elemen kedua harus ditambahkan di sebelah kanan), tetapi jika Anda menggunakannyacolumn-count
akanA E
.Anda dapat melakukan ini dengan sangat mudah dengan Plugin jQuery-Columns misalnya untuk membagi ul dengan kelas .mylist yang akan Anda lakukan
Inilah contoh langsung tentang jsfiddle
Saya suka ini lebih baik daripada dengan CSS karena dengan solusi CSS tidak semuanya sejajar secara vertikal ke atas.
sumber
<ul>
daftar dalam beberapa daftar ... Itu bisa menyulitkan hal-hal lain.lebih banyak satu jawaban setelah beberapa tahun!
dalam artikel ini: http://csswizardry.com/2010/02/mutiple-column-lists-using-one-ul/
HTML:
CSS:
sumber
Dalam
updateColumns()
kebutuhanif (column >= columns.length)
daripadaif (column > columns.length)
untuk membuat daftar semua elemen (C dilewati misalnya) sehingga:http://jsfiddle.net/e2vH9/1/
sumber
Dengan Bootstrap ... Jawaban ini ( https://stackoverflow.com/a/23005046/1128742 ) membuat saya menunjuk ke arah solusi ini:
http://jsfiddle.net/patrickbad767/472r0ynf/
sumber
Solusi lawas dalam jawaban teratas tidak berfungsi untuk saya karena saya ingin memengaruhi banyak daftar pada halaman dan jawabannya mengasumsikan satu daftar ditambah ia menggunakan sedikit keadaan global. Dalam hal ini saya ingin mengubah setiap daftar di dalam
<section class="list-content">
:sumber
Meskipun saya menemukan Gabriel menjawab untuk bekerja pada tingkat tertentu, saya menemukan yang berikut ketika mencoba untuk memesan daftar secara vertikal (ul pertama dan kedua ul EG):
Saya telah merevisi JQuery sehingga hal di atas semoga tidak terjadi.
sumber
Thisd adalah solusi sempurna bagi saya, mencarinya selama bertahun-tahun:
http://css-tricks.com/forums/topic/two-column-unordered-list/
sumber
Abdul
dalam jawabannya, identik dengan lebar dan ID yang digunakan.