: Bir "düzenlenebilir ızgara" ie Bir form satırlarının herhangi yapmanızı sağlar yapı gibi bir tablo, kullanım CSS taklit eden TABLO etiketinin düzeni istiyorsanız display:table
, display:table-row
ve display:table-cell
.
Tüm tablonuzu bir forma sarmanıza ve tablonuzun görünen her satırı için ayrı bir form ve tablo oluşturmanıza gerek yoktur.
Bunun yerine şunu deneyin:
<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>
Tüm TABLO'yu bir FORM'ye sarmakla ilgili sorun, form öğelerinin herhangi birinin ve tüm form öğelerinin gönderildiğinde gönderilmesidir (belki de istenir, ancak muhtemelen değil). Bu yöntem, her "satır" için bir form tanımlamanıza ve yalnızca gönderildiğinde bu veri satırını göndermenize olanak tanır.
FORM etiketinin bir TR etiketinin (veya TR'nin etrafında bir TR'nin) etrafına sarılmasındaki sorun, geçersiz HTML olmasıdır. FORM yine de her zamanki gibi gönderime izin verecek, ancak bu noktada DOM bozuldu. Not: FORM'nuzun veya TR'nizin alt öğelerini JavaScript ile almayı deneyin, bu beklenmedik sonuçlara yol açabilir.
IE7'nin bu CSS tablo stillerini desteklemediğini ve IE8'in "standartlar" moduna geçmek için bir doküman türüne gereksinimi olacağını unutmayın: (bunu veya eşdeğerini deneyin)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Display: table, display: table-row ve display: table-cell'i destekleyen diğer tüm tarayıcılar, css veri tablonuzu TABLE, TR ve TD etiketlerini kullandığınız gibi görüntülemelidir. Çoğu öyle.
Not o yapabilirsiniz başka DIV içinde satır grupları sararak da mimik Thead, TBODY, Tfoot display: table-header-group
, table-row-group
ve table-footer-group
sırasıyla.
NOT: Bu yöntemle yapamayacağınız tek şey colspan.
Bu resme bakın: http://jsfiddle.net/ZRQPP/
<form>
içine konamaz<tr>
.