Hai semua sudah lama sejak saya bertanya sesuatu, ini adalah sesuatu yang mengganggu saya untuk sementara waktu, pertanyaan itu sendiri ada di judul:
Apa cara yang Anda sukai untuk menulis tabel HTML yang memiliki tajuk vertikal?
Yang saya maksud dengan header vertikal adalah tabel memiliki <th>
tag header ( ) di sisi kiri (umumnya)
Header 1 data data data
Header 2 data data
Header 3 data data data
Mereka terlihat seperti ini, sejauh ini saya telah menemukan dua opsi
Pilihan pertama
<table id="vertical-1">
<caption>First Way</caption>
<tr>
<th>Header 1</th>
<td>data</td><td>data</td><td>data</td>
</tr>
<tr>
<th>Header 2</th>
<td>data</td><td>data</td><td>data</td>
</tr>
<tr>
<th>Header 2</th>
<td>data</td><td>data</td><td>data</td>
</tr>
</table>
Keuntungan utama dari cara ini adalah bahwa Anda memiliki header yang tepat (benar-benar meninggalkan) di sebelah data yang diwakilinya, apa yang tidak saya lakukan seperti namun adalah bahwa <thead>
, <tbody>
dan <tfoot>
tag yang hilang, dan tidak ada cara untuk memasukkan mereka tanpa melanggar nicelly menempatkan elemen bersama, yang membawa saya ke opsi kedua.
Opsi Kedua
<style type="text/css">
#vertical-2 thead,#vertical-2 tbody{
display:inline-block;
}
</style>
<table id="vertical-2">
<caption>Second Way</caption>
<thead>
<tr>
<th colspan="3">Header 1</th>
</tr>
<tr>
<th colspan="3">Header 2</th>
</tr>
<tr>
<th colspan="3">Header 3</th>
</tr>
</thead>
<tbody>
<tr>
<td>row 1</td>
<td>row 1</td>
<td>row 1</td>
</tr>
<tr>
<td>data</td>
<td>data</td>
<td>data</td>
</tr>
<tr>
<td>data</td>
<td>data</td>
<td>data</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="4">Footer</td>
</tr>
</tfoot>
</table>
Keuntungan utama di sini adalah bahwa Anda memiliki tabel html sepenuhnya deskriptif, kelemahan adalah bahwa representasi yang tepat perlu sedikit CSS untuk tbody
dan thead
tag dan bahwa hubungan antara header dan data tidak sangat jelas seperti yang saya punya keraguan saya saat membuat markup.
Jadi, kedua cara merender tabel sebagaimana mestinya, berikut ini pitcure:
Dengan tajuk di sisi kiri atau kanan jika Anda lebih suka, jadi, ada saran, alternatif, masalah browser?
sumber
scope
Atribut tidak akan membuat banyak perbedaan dalam kasus ini. Jika Anda membaca untuk apa, Anda akan mengerti. Ini pada dasarnya berarti bahwa kolom itu adalah tajuk untuk baris atau kolom yang dikandungnya. Masalahnya adalah penggunaannya tidak masuk akal kecuali jika harus mengganti<th>
dengan<td scope="row">
.Opsi Pertama ... Saya pikir ini adalah pendekatan yang lebih baik dan sederhana ..
sumber
Sejujurnya, opsi 1. Saya sarankan Anda untuk melihat contoh ini dari W3.org (tautan dibawah). Menurut saya metode ini adalah yang terbaik, karena dengan cara ini tajuk Anda juga akan ditafsirkan langsung di pembaca layar.
https://www.w3.org/WAI/tutorials/tables/one-header/#table-with-header-cells-in-the-first-column-only
sumber
Jika Anda ingin memperlihatkan elemen kontrol terikat data (seperti pengulang asp) di tabel Anda, maka opsi pertama tidak akan dimungkinkan. Opsi kedua dapat digunakan sebagai berikut.
sumber
sumber