Jika Anda ingin "grid diedit" yaitu meja seperti struktur yang memungkinkan Anda untuk membuat salah satu baris bentuk, penggunaan CSS yang meniru tata letak TABLE tag: display:table
, display:table-row
, dan display:table-cell
.
Tidak perlu untuk membungkus seluruh tabel Anda dalam formulir dan tidak perlu membuat formulir dan tabel terpisah untuk setiap baris yang tampak dari tabel Anda.
Coba ini sebagai gantinya:
<style>
DIV.table
{
display:table;
}
FORM.tr, DIV.tr
{
display:table-row;
}
SPAN.td
{
display:table-cell;
}
</style>
...
<div class="table">
<form class="tr" method="post" action="blah.html">
<span class="td"><input type="text"/></span>
<span class="td"><input type="text"/></span>
</form>
<div class="tr">
<span class="td">(cell data)</span>
<span class="td">(cell data)</span>
</div>
...
</div>
Masalah dengan membungkus seluruh TABEL dalam FORMULIR adalah bahwa setiap dan semua elemen bentuk akan dikirim pada ajukan (mungkin yang diinginkan tetapi mungkin tidak). Metode ini memungkinkan Anda untuk menentukan formulir untuk setiap "baris" dan hanya mengirim baris data yang dikirimkan.
Masalah dengan membungkus tag FORM di sekitar tag TR (atau TR di sekitar FORM) adalah bahwa itu HTML yang tidak valid. FORMULIR masih akan mengizinkan pengiriman seperti biasa tetapi pada saat ini DOM rusak. Catatan: Cobalah mendapatkan elemen turunan dari FORMULIR atau TR Anda dengan JavaScript, ini dapat menghasilkan hasil yang tidak terduga.
Perhatikan bahwa IE7 tidak mendukung gaya tabel CSS ini dan IE8 akan memerlukan deklarasi doctype untuk mendapatkannya ke mode "standar": (coba ini setara atau sesuatu)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Browser lain yang mendukung tampilan: tabel, tampilan: baris tabel dan tampilan: sel tabel harus menampilkan tabel data css Anda sama seperti jika Anda menggunakan tag TABLE, TR dan TD. Kebanyakan dari mereka melakukannya.
Perhatikan bahwa Anda juga dapat meniru THEAD, TBODY, TFOOT dengan membungkus grup baris Anda dengan DIV lain display: table-header-group
, table-row-group
dan table-footer-group
masing - masing.
CATATAN: Satu-satunya hal yang tidak dapat Anda lakukan dengan metode ini adalah colspan.
Lihatlah ilustrasi ini: http://jsfiddle.net/ZRQPP/
<form>
tidak bisa dimasukkan ke dalam<tr>
.