Saya mengalami sedikit masalah. Saya menggunakan FireFox 3.6 dan memiliki struktur DOM berikut:
<div class="view-row">
<div class="view-type">Type</div>
<div class="view-name">Name</div>
</div>
Dan CSS berikut:
.view-row {
width:100%;
display:table-row;
}
.view-name {
display: table-cell;
float:right;
}
.view-type {
display: table-cell;
}
Jika saya melepasnya display:table-row
akan muncul dengan benar, dengan view-row
menunjukkan lebar 100%. Jika saya mengembalikannya, itu menyusut. Saya telah memasang ini di JS Bin:
Apa yang sedang terjadi?
Jawaban yang diuji:
Di .view-row css, ubah:
display:table-row;
untuk:
display:table
dan singkirkan "float" . Semuanya akan bekerja seperti yang diharapkan.
Seperti yang telah disarankan di komentar, tidak perlu tabel pembungkus. CSS memungkinkan untuk menghilangkan level dari struktur pohon (dalam hal ini baris) yang implisit. Alasan kode Anda tidak berfungsi adalah karena "lebar" hanya dapat diinterpretasikan di tingkat tabel, bukan di tingkat baris tabel. Ketika Anda memiliki "tabel" dan kemudian "sel tabel" tepat di bawahnya, mereka secara implisit diartikan sebagai duduk dalam satu baris.
Contoh kerja:
<div class="view"> <div>Type</div> <div>Name</div> </div>
dengan css:
.view { width:100%; display:table; } .view > div { width:50%; display: table-cell; }
sumber
<table><td></td></table>
yang dengan sendirinya akan menjadi markup HTML yang tidak valid sesuai W3C. Sementara itu akan divalidasi, mengapa Anda menyarankan memberi tahu browser untuk meniru markup ini?Perhatikan bahwa sesuai dengan spesifikasi CSS3, Anda TIDAK perlu membungkus tata letak Anda dalam elemen gaya tabel. Browser akan menyimpulkan keberadaan elemen penampung jika tidak ada.
sumber
berikan di
.view-type
kelasfloat:left;
atau hapusfloat:right;
dari.view-name
edit: Bungkus div Anda
<div class="view-row">
dengan div lain misalnya<div class="table">
dan atur css berikut:
.table { display:table; width:100%;}
Anda harus menggunakan struktur tabel untuk mendapatkan hasil yang benar.
sumber
Anda dapat menumpuk sel tabel langsung di dalam tabel. Anda harus memiliki meja. Memulai baris tabel tidak bekerja. Cobalah dengan HTML ini:
<html> <head> <style type="text/css"> .table { display: table; width: 100%; } .tr { display: table-row; width: 100%; } .td { display: table-cell; } </style> </head> <body> <div class="table"> <div class="tr"> <div class="td"> X </div> <div class="td"> X </div> <div class="td"> X </div> </div> </div> <div class="tr"> <div class="td"> X </div> <div class="td"> X </div> <div class="td"> X </div> </div> <div class="table"> <div class="td"> X </div> <div class="td"> X </div> <div class="td"> X </div> </div> </body> </html>
sumber