تخطَّ إلى المحتوى

الجداول في HTML: الصفوف والأعمدة والدمج

الدرس 7 من 17 · HTML

جدول الحصص المدرسية، ونتائج الامتحانات، ومواعيد القطارات، وأسعار الباقات: كلها بيانات تُفهم بسرعة عندما توضع في صفوف وأعمدة. في هذا الدرس ستتعلم كيف تبني جدولاً في HTML خطوة بخطوة، وكيف تجعله واضحاً ومفهوماً للجميع.

الجدول يُبنى من ثلاثة وسوم أساسية:

  • <table>: الجدول كله.
  • <tr>: صف واحد (table row).
  • <td>: خلية بيانات داخل الصف (table data).
<table>
<tr>
<td>أحمد</td>
<td>95</td>
</tr>
<tr>
<td>منى</td>
<td>88</td>
</tr>
</table>

لاحظ طريقة التفكير: HTML تبني الجدول صفاً بعد صف. تفتح صفاً، ثم تضع خلاياه من اليمين لليسار (في الصفحات العربية)، ثم تغلقه وتبدأ الصف التالي. عدد الأعمدة يُحسب من عدد الخلايا في كل صف.

تخيّل الجدول مثل رفوف مكتبة: كل <tr> رف، وكل <td> خانة على هذا الرف.

الجدول السابق لا يخبرنا ماذا تعني الأرقام. لذلك نضيف صفاً أول فيه عناوين الأعمدة باستخدام <th> (table header) بدل <td>:

<table>
<tr>
<th>الاسم</th>
<th>الدرجة</th>
</tr>
<tr>
<td>أحمد</td>
<td>95</td>
</tr>
</table>

يعرض المتصفح محتوى <th> بخط عريض وفي المنتصف. والأهم من الشكل: قارئات الشاشة تفهم أن هذه عناوين، فتقرأ للكفيف «الدرجة: 95» بدلاً من «95» وحدها.

أقسام الجدول: thead و tbody و tfoot

Section titled “أقسام الجدول: thead و tbody و tfoot”

في الجداول الكبيرة نقسّم الصفوف إلى ثلاثة أجزاء، مثل الكتاب الذي له غلاف وصفحات وخاتمة:

  • <thead>: صف (أو صفوف) العناوين.
  • <tbody>: صفوف البيانات.
  • <tfoot>: صف الخلاصة، مثل المجموع أو المتوسط.

ونضيف أيضاً <caption> كأول عنصر داخل <table>، ليكون عنواناً للجدول كله:

<table>
<caption>درجات اختبار الرياضيات</caption>
<thead>
<tr>
<th>الاسم</th>
<th>الدرجة</th>
</tr>
</thead>
<tbody>
<tr>
<td>أحمد</td>
<td>95</td>
</tr>
<tr>
<td>منى</td>
<td>88</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>المتوسط</td>
<td>91.5</td>
</tr>
</tfoot>
</table>

هذا التقسيم لا يغير الشكل كثيراً، لكنه يجعل الجدول منظماً، ويسهّل تنسيق كل جزء بـ CSS، ويساعد المتصفح عند طباعة الجداول الطويلة.

أحياناً تحتاج خلية تمتد على أكثر من عمود أو أكثر من صف، مثل حصة مزدوجة في جدول الحصص.

colspan: تجعل الخلية تمتد أفقياً على عدة أعمدة:

<tr>
<td colspan="2">حصة رياضة مزدوجة</td>
</tr>

rowspan: تجعل الخلية تمتد رأسياً على عدة صفوف:

<tr>
<th rowspan="2">الأحد</th>
<td>عربي</td>
</tr>
<tr>
<td>رياضيات</td>
</tr>

لاحظ في مثال rowspan أن الصف الثاني فيه خلية واحدة فقط، لأن خلية «الأحد» من الصف الأول تشغل مكانها فيه.

الجدول في HTML يظهر بلا حدود افتراضياً. ستجد في الأمثلة القديمة الخاصية border="1"، لكنها قديمة ولا ننصح بها. الطريقة الصحيحة هي CSS، وسنستخدم سطرين بسيطين منها في التجربة التالية لترى الجدول بوضوح، وستفهمها بالتفصيل في كورس CSS.

هذا جدول حصص صغير فيه caption و thead ودمج للخلايا. أضف يوماً جديداً، وجرّب تغيير قيمة colspan:

جرّب بنفسكHTML
أو اضغط Ctrl + Enter

الناتج

  • وضع td مباشرة داخل table بدون tr: كل خلية يجب أن تكون داخل صف.
  • اختلاف عدد الخلايا بين الصفوف: صف فيه 3 خلايا وآخر فيه 2 بدون colspan يجعل الجدول غير متناسق.
  • استخدام td للعناوين وتكبيرها بالخط العريض: استخدم <th> للعناوين، فهي تحمل المعنى الصحيح لقارئات الشاشة.

سؤال

أي وسم يمثل صفاً واحداً في الجدول؟

سؤال

الجدول فيه 3 أعمدة، وتريد خلية واحدة تملأ الصف كله. ماذا تكتب؟

  • <table> الجدول، و <tr> الصف، و <td> خلية البيانات، و <th> خلية العنوان.
  • الجدول يُبنى صفاً بعد صف، وعدد الأعمدة يأتي من عدد الخلايا.
  • <caption> عنوان الجدول، و <thead> و <tbody> و <tfoot> تنظّم أجزاءه.
  • colspan للدمج الأفقي، و rowspan للدمج الرأسي، مع حساب الخلايا بدقة.
  • الحدود والتنسيق بـ CSS، والجداول للبيانات فقط لا لتخطيط الصفحة.