Saya memiliki sejumlah elemen sel tabel di dalam wadah tabel.
<div style="display:table;">
<div style="display:table-cell;"></div>
<div style="display:table-cell;"></div>
</div>
Apakah ada cara CSS murni untuk mendapatkan sel tabel untuk menjadi sama lebar bahkan jika mereka memiliki ukuran konten yang berbeda di dalamnya?
Terima kasih.
Sunting: Memiliki max-width akan memerlukan mengetahui berapa banyak sel yang Anda miliki, saya pikir?
html
css
html-table
Harry
sumber
sumber
Jawaban:
Berikut adalah biola yang berfungsi dengan jumlah sel yang tidak ditentukan: http://jsfiddle.net/r9yrM/1/
Anda dapat memperbaiki lebar untuk setiap orang tua
div
( tabel ), jika tidak maka akan menjadi 100% seperti biasa.Caranya adalah dengan menggunakan
table-layout: fixed;
dan beberapa lebar pada setiap sel untuk memicunya, di sini 2%. Itu akan memicu algoritma tabel lainnya , yang mana browser berusaha sangat keras untuk menghormati dimensi yang ditunjukkan.Silakan uji dengan Chrome (dan IE8- jika perlu). Tidak apa-apa dengan Safari baru-baru ini, tetapi saya tidak ingat kompatibilitas trik ini dengan mereka.
CSS (instruksi yang relevan):
EDIT (2013): Waspadai Safari 6 di OS X, ada
table-layout: fixed;
kesalahan (atau mungkin hanya berbeda, sangat berbeda dari browser lain. Saya tidak membaca-baca tata letak tabel REC CSS2.1;)). Bersiaplah untuk hasil yang berbeda.sumber
div
s dengandisplay:table
untuk digunakan seolah-olah mereka adalah baris, tidakdisplay:tabl-row
seperti yang mungkin beberapa orang harapkan. Contoh di sini ..my-cell { width: 100%; }; @media screen and (min-width:0\0) { .my-cell { width: 1%; } }
Peretasan CSS berasal dari sini: stackoverflow.com/a/24321386/6962HTML
CSS
DEMO.
sumber
Hanya menggunakan
max-width: 0
didisplay: table-cell
elemen bekerja untuk saya:sumber
0px
bukan unit yang valid. Seharusnya begitu0
.Menggantikan
dengan
Lihatlah semua masalah di sekitar mencoba membuat div berfungsi seperti tabel. Mereka harus menambahkan table-xxx untuk meniru tata letak tabel
Tabel didukung dan berfungsi dengan sangat baik di semua browser. Mengapa membuang mereka? fakta bahwa mereka harus meniru mereka adalah bukti bahwa mereka melakukan pekerjaan mereka dengan baik.
Menurut pendapat saya gunakan alat terbaik untuk pekerjaan itu dan jika Anda ingin data tabulasi atau sesuatu yang menyerupai tabel data tabulasi hanya bekerja.
Sangat terlambat balas saya tahu tapi layak disuarakan.
sumber
<nav>
,<ul>
, dlldisplay: table-etc
(secara alami). Saya tidak menghabiskan hari-hari saya membuat tautan meniru divs atau div meniru tabel, rentang atau input: Saya hanya menggunakan CSS untuk styling. Akhirnya, semoga berhasil dengan IE9 untuk menerapkan nilaidisplay
properti lainnya ke elemen tabel, tr, td.ini akan bekerja untuk semua orang
Ini juga akan berfungsi untuk data tabel yang dibuat oleh iterasi
sumber
Ini dia:
http://jsfiddle.net/damsarabi/gwAdA/
Anda tidak dapat menggunakan lebar: 100px, karena tampilan adalah sel tabel. Namun Anda dapat menggunakan Max-width: 100px. maka kotak Anda tidak akan pernah menjadi lebih besar dari 100px. tetapi Anda perlu menambahkan overflow: disembunyikan untuk memastikan contect tidak berdarah ke sel lain. Anda juga dapat menambahkan ruang putih: nowrap jika Anda ingin menjaga ketinggian agar tidak bertambah.
sumber
Ini dapat dilakukan dengan menyetel gaya sel tabel ke
width: auto
, dan konten kosong. Kolom sekarang sama lebarnya, tetapi tidak memuat konten.Untuk memasukkan konten ke sel, tambahkan
div
dengan css:Anda juga perlu menambahkan
position: relative
ke sel.Sekarang Anda dapat memasukkan konten aktual ke div yang disebutkan di atas.
https://jsfiddle.net/vensdvvb/
sumber