Apakah hal seperti itu mungkin menggunakan CSS dan dua tag DIV inline-block (atau apa pun) alih-alih menggunakan tabel?
Versi tabelnya adalah ini (batas ditambahkan sehingga Anda dapat melihatnya):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body>
<table style="width:100%;">
<tr>
<td style="border:1px solid black;width:100px;height:10px;"></td>
<td style="border:1px solid black;height:10px;"></td>
</tr>
</table>
</body>
</html>
Ini menghasilkan kolom kiri dengan WIDTH TETAP (bukan lebar persentase), dan kolom kanan yang mengembang untuk mengisi RUANG SISA di baris. Kedengarannya cukup sederhana, bukan? Selain itu, karena tidak ada yang "mengambang", tinggi induk induk dengan benar mengembang untuk mencakup ketinggian konten.
--MULAI RANT -
Saya telah melihat implementasi "perbaikan jelas" dan "grail suci" untuk tata letak multi-kolom dengan kolom sisi lebar-tetap, dan mereka payah dan rumit. Mereka membalik urutan elemen, mereka menggunakan lebar persentase, atau mereka menggunakan float, margin negatif, dan hubungan antara atribut "kiri", "kanan", dan "margin" sangat kompleks. Lebih jauh lagi, tata letak adalah sub-pixel sensitif sehingga menambahkan bahkan satu pixel dari perbatasan, padding, atau margin akan memecah seluruh tata letak, dan mengirim seluruh kolom membungkus ke baris berikutnya. Misalnya, kesalahan pembulatan adalah masalah bahkan jika Anda mencoba melakukan sesuatu yang sederhana, seperti meletakkan 4 elemen pada sebuah garis, dengan lebar masing-masing diatur ke 25%.
--END RANT--
Saya sudah mencoba menggunakan "inline-block" dan "white-space: nowrap;", tetapi masalahnya adalah saya tidak bisa mendapatkan elemen ke-2 untuk mengisi ruang yang tersisa di telepon. Mengatur lebar ke sesuatu seperti "width: 100% - (LeftColumWidth) px" akan berfungsi dalam beberapa kasus, tetapi melakukan penghitungan dalam properti lebar tidak benar-benar didukung.
display: table-*
konstruksi yang akan bekerja, tetapi tidak benar-benar "lebih semantik" baik (menjadidiv
sup yang mengerikan ) dan merusak kompatibilitas IE6. Saya pribadi akan tetap dengan<table>
, kecuali seseorang berhasil datang dengan ide jenius sederhana yang bekerja tanpa