Хүснэгт (table)
HTML хүснэгт нь мөр ба баганаар зохион байгуулагдсан өгөгдлийг харуулахад зориулагдсан. Хуваарь, үнийн жагсаалт, статистик өгөгдөл — хүснэгтэд тохиромжтой.
Үндсэн бүтэц
<table>
<thead>
<!-- Гарчгийн мөр -->
<tr>
<th>Нэр</th>
<th>Хэл</th>
<th>Жил</th>
</tr>
</thead>
<tbody>
<!-- Өгөгдлийн мөрүүд -->
<tr>
<td>React</td>
<td>JavaScript</td>
<td>2013</td>
</tr>
<tr>
<td>Vue</td>
<td>JavaScript</td>
<td>2014</td>
</tr>
</tbody>
</table>
Гол элементүүд:
<table>— хүснэгтийн үндсэн хаалт<thead>— толгойн хэсэг (гарчгийн мөр)<tbody>— биеийн хэсэг (өгөгдлийн мөрүүд)<tfoot>— хөлийн хэсэг (нийлбэр, дүгнэлт)<tr>— table row (хэвтээ мөр)<th>— table header (гарчгийн нүд) — bold, center байдлаар харагдана<td>— table data (өгөгдлийн нүд)
thead, tbody, tfoot
<table>
<thead>
<tr>
<th>Бараа</th>
<th>Тоо</th>
<th>Үнэ</th>
</tr>
</thead>
<tbody>
<tr>
<td>Дэвтэр</td>
<td>3</td>
<td>1,500₮</td>
</tr>
<tr>
<td>Харандаа</td>
<td>5</td>
<td>500₮</td>
</tr>
</tbody>
<tfoot>
<!-- Нийт дүн -->
<tr>
<td colspan="2">Нийт</td>
<td>7,000₮</td>
</tr>
</tfoot>
</table>
<tfoot> HTML-д <tbody>-ийн өмнө байж болох ч хөтөч хуудасны доод хэсэгт харуулна. Урт хүснэгтийг хэвлэхэд <tfoot> хуудас бүрийн доод хэсэгт гарч ирдэг.
colspan — баганыг нэгтгэх
Нэг нүд хэдэн баганыг хамрахыг заана:
<table>
<thead>
<tr>
<!-- Энэ нүд 2 баганыг хамарна -->
<th colspan="2">Хугацаа</th>
<th>Сэдэв</th>
</tr>
<tr>
<th>Эхлэх</th>
<th>Дуусах</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>09:00</td>
<td>10:30</td>
<td>HTML үндэс</td>
</tr>
</tbody>
</table>
rowspan — мөрийг нэгтгэх
Нэг нүд хэдэн мөрийг хамрахыг заана:
<table>
<tbody>
<tr>
<!-- Энэ нүд 3 мөрийг хамарна -->
<td rowspan="3">Frontend</td>
<td>HTML</td>
</tr>
<tr>
<!-- "Frontend" нүд аль хэдийн байгаа учир энд td байхгүй -->
<td>CSS</td>
</tr>
<tr>
<td>JavaScript</td>
</tr>
<tr>
<td rowspan="2">Backend</td>
<td>Node.js</td>
</tr>
<tr>
<td>Python</td>
</tr>
</tbody>
</table>
scope attribute — accessibility
Screen reader-д гарчгийн нүд аль чиглэлийнх болохыг мэдэгдэнэ:
<thead>
<tr>
<!-- Баганы гарчиг -->
<th scope="col">Улс</th>
<th scope="col">Нийслэл</th>
<th scope="col">Хүн ам</th>
</tr>
</thead>
<tbody>
<tr>
<!-- Мөрийн гарчиг -->
<th scope="row">Монгол</th>
<td>Улаанбаатар</td>
<td>3.4 сая</td>
</tr>
</tbody>
Хэзээ table ашиглах, хэзээ ашиглахгүй байх
Ашиглах тохиолдол:
- Хоёр буюу түүнээс дээш хэмжээст өгөгдөл (мөр + багана)
- Харьцуулах боломжтой өгөгдөл (үнийн жагсаалт, хуваарь, статистик)
- Spreadsheet маягийн мэдээлэл
Ашиглахгүй байх тохиолдол:
- Хуудасны layout хийх — тэр зорилгоор CSS Flexbox эсвэл Grid ашиглана
- Энгийн жагсаалт —
<ul>хэрэглэнэ - Хажуугийн цэс, header, footer гэх мэт UI бүтэц
Хуучин вэбд <table>-ийг layout хийхэд ашигладаг байсан. Энэ нь буруу дадал — HTML семантик, accessibility, responsive дизайн бүгдийг эвдэнэ.
Практик жишээ
<!DOCTYPE html>
<html lang="mn">
<head>
<meta charset="UTF-8" />
<title>Хичээлийн хуваарь</title>
</head>
<body>
<h1>Долоо хоногийн хуваарь</h1>
<table>
<thead>
<tr>
<th scope="col">Цаг</th>
<th scope="col">Даваа</th>
<th scope="col">Мягмар</th>
<th scope="col">Лхагва</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">09:00</th>
<td>Математик</td>
<td>Физик</td>
<td>Математик</td>
</tr>
<tr>
<th scope="row">11:00</th>
<td colspan="2">Монгол хэл</td>
<td>Түүх</td>
</tr>
</tbody>
</table>
</body>
</html>
Дараагийн хичээлд:
<form> tag ашиглан хэрэглэгчээс мэдээлэл цуглуулах форм үүсгэж сурна. action, method, label, input, button элементүүд болон for/id холболтын талаар үзнэ.