Kodax

الجداول — أساسيات HTML

الجداول

الجدول لعرض بيانات جدولية: صفوف وأعمدة لها معنى (جدول درجات، أسعار، مواعيد). كان يُستخدم قديماً لتخطيط الصفحات — هذا خطأ اليوم: يضر الوصولية والتجاوب. التخطيط من مسؤولية CSS (Flexbox و Grid).

البنية

<table>
    <caption>درجات الفصل الأول</caption>
    <thead>
        <tr>
            <th scope="col">الطالب</th>
            <th scope="col">الرياضيات</th>
            <th scope="col">العلوم</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <th scope="row">سارة</th>
            <td>95</td>
            <td>88</td>
        </tr>
        <tr>
            <th scope="row">عمر</th>
            <td>78</td>
            <td>91</td>
        </tr>
    </tbody>
</table>

| العنصر | الدور |

|---|---|

| <table> | الجدول |

| <caption> | عنوان الجدول (أول عنصر داخله) |

| <thead> / <tbody> / <tfoot> | الرأس / الجسم / الذيل (للمجاميع) |

| <tr> | صف |

| <th> | خلية عنوان |

| <td> | خلية بيانات |

لماذا th و scope؟

قارئ الشاشة يقرأ الخلية "88" مع عناوينها: "عمر، العلوم، 88". بدون <th> يسمع المستخدم أرقاماً بلا سياق. scope="col" تعني أن العنوان لعمود، و scope="row" لصف.

دمج الخلايا

<table>
    <caption>جدول الأسبوع</caption>
    <thead>
        <tr>
            <th scope="col">اليوم</th>
            <th scope="col" colspan="2">الحصص</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <th scope="row" rowspan="2">الأحد</th>
            <td>HTML</td>
            <td>CSS</td>
        </tr>
        <tr>
            <td colspan="2">مشروع عملي</td>
        </tr>
    </tbody>
</table>

- colspan="2" الخلية تمتد عمودين.

- rowspan="2" الخلية تمتد صفين — فالصف التالي يحتوي خلايا أقل.

استخدم الدمج باعتدال؛ الجداول المعقدة صعبة على قارئات الشاشة. أحياناً جدولان بسيطان أفضل من جدول واحد معقد.

الذيل للمجاميع

<table>
    <caption>فاتورة</caption>
    <thead><tr><th scope="col">المنتج</th><th scope="col">السعر</th></tr></thead>
    <tbody>
        <tr><td>كتاب</td><td>15,000</td></tr>
        <tr><td>دفتر</td><td>3,000</td></tr>
    </tbody>
    <tfoot>
        <tr><th scope="row">المجموع</th><td>18,000</td></tr>
    </tfoot>
</table>

الشكل

الجدول الافتراضي بلا حدود. الحدود والألوان والمسافات من CSS (border، border-collapse، padding). لا تستخدم الخاصية القديمة border="1" في الكود الجديد.

الجداول على الجوال

الجداول العريضة تتجاوز الشاشة. الحل الشائع: وضع الجدول داخل عنصر يسمح بالتمرير الأفقي بـ CSS (overflow-x: auto).

تمرين

أنشئ جدول "مصاريف الشهر" بـ caption، وأعمدة (البند، التصنيف، المبلغ)، وخمسة صفوف، وذيل <tfoot> بالمجموع. استخدم th مع scope المناسب.

<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>جدول الدرجات</title>
</head>
<body>
    <table>
        <caption>درجات الفصل الأول</caption>
        <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">سارة</th>
                <td>95</td>
                <td>88</td>
                <td>91.5</td>
            </tr>
            <tr>
                <th scope="row">عمر</th>
                <td>78</td>
                <td>91</td>
                <td>84.5</td>
            </tr>
        </tbody>
        <tfoot>
            <tr>
                <th scope="row">معدل الصف</th>
                <td>86.5</td>
                <td>89.5</td>
                <td>88</td>
            </tr>
        </tfoot>
    </table>
</body>
</html>
اختبر فهمك