<table>
<tr>
<td>Test</td>
<td>A long string blah blah blah</td>
</tr>
</table>
<style>
td{max-width:67%;}
</style>
Di atas tidak berhasil. Bagaimana cara mengatur lebar maksimal sel tabel menggunakan persentase?
<table>
<tr>
<td>Test</td>
<td>A long string blah blah blah</td>
</tr>
</table>
<style>
td{max-width:67%;}
</style>
Di atas tidak berhasil. Bagaimana cara mengatur lebar maksimal sel tabel menggunakan persentase?
Jawaban:
Menurut definisi lebar-maks dalam spesifikasi CSS 2.1, “efek 'lebar-minimum' dan 'lebar-maksimal' pada tabel, tabel sebaris, sel tabel, kolom tabel, dan grup kolom tidak ditentukan.” Jadi Anda tidak bisa langsung mengatur max-width pada elemen td.
Jika Anda hanya ingin kolom kedua mengambil paling banyak 67%, maka Anda dapat mengatur lebar (yang berlaku lebar minimum, untuk sel tabel) menjadi 33%, misalnya dalam kasus contoh
td:first-child { width: 33% ;}
Pengaturan untuk kedua kolom tidak akan bekerja dengan baik, karena cenderung membuat browser memberikan lebar kolom yang sama.
Pertanyaan lama yang saya tahu, tetapi sekarang ini dapat dilakukan dengan menggunakan properti css table-layout: fixed
pada tag tabel. Jawaban di bawah dari pertanyaan ini, lebar persentase CSS dan luapan teks dalam sel tabel
Ini mudah dilakukan dengan menggunakan table-layout: fixed
, tetapi sedikit rumit karena tidak banyak orang yang mengetahui tentang properti CSS ini.
table {
width: 100%;
table-layout: fixed;
}
Lihat aksinya di biola yang diperbarui di sini: http://jsfiddle.net/Fm5bM/4/
max-width
di jsfiddle itu, lebarnya akan tetap sama jadi bukan max-width
yang mengaturnya. Mungkin lebih jelas jika Anda menggantinya dengan a max-width: 10%
untuk yang pertama td
... Anda akan melihat bahwa itu tidak berubah. jsfiddle.net/w3f8ey22/1
Saya tahu ini benar-benar setahun kemudian, tetapi saya pikir saya akan berbagi. Saya mencoba melakukan hal yang sama dan menemukan solusi yang berhasil untuk saya. Kami menetapkan lebar maksimal untuk seluruh tabel, lalu bekerja dengan ukuran sel untuk efek yang diinginkan.
Letakkan tabel di div-nya sendiri, lalu atur lebar, min-width, dan / atau max-width dari div seperti yang diinginkan untuk seluruh tabel. Kemudian, Anda dapat bekerja dan mengatur lebar dan lebar-min untuk sel lain, dan lebar maksimum untuk div secara efektif bekerja di sekitar dan ke belakang untuk mencapai lebar maksimal yang kita inginkan.
<div id="tablediv">
<table width="100%">
<tr>
<td class="tdleft">Test</td>
<td>A long string blah blah blah</td>
</tr>
</table>
</div>
Kemudian dalam gaya Anda taruh:
#tablediv {
width:90%;
min-width:800px
max-width:1500px;
}
.tdleft {
width:20%;
min-width:200px;
}
Memang, ini tidak memberi Anda lebar "maks" dari sel itu sendiri, tetapi memungkinkan beberapa kontrol yang mungkin bekerja sebagai pengganti opsi semacam itu. Tidak yakin apakah itu akan bekerja untuk kebutuhan Anda. Saya tahu itu berfungsi untuk situasi kami di mana kami ingin sisi navigasi di halaman skala naik dan turun ke satu titik tetapi untuk semua layar lebar hari ini.