امتحان HTML 2: النماذج والجداول المتقدمة (20 تمرين)

امتحان HTML 2: المستوى المتوسط

يتكون هذا الامتحان من 20 تمرين شامل يركز على النماذج والجداول المتقدمة.
التمارين 1-10: المستوى الأساسي | التمارين 11-15: المستوى المتوسط | التمارين 16-20: المستوى المتقدم

تمرين 1 دمج الخلايا في الجداول (Colspan & Rowspan)

أنشئ جدولاً يحتوي على:

  1. خلية في الرأس تمتد على عمودين (colspan="2") بعنوان "بيانات الموظف".
  2. في الصفوف التالية، خلية تمتد على صفين (rowspan="2") باسم القسم "IT".
  3. أضف حدوداً للجدول.
الحل
<table border="1">
    <tr>
        <th colspan="2">بيانات الموظف</th>
    </tr>
    <tr>
        <td rowspan="2">IT</td>
        <td>أحمد</td>
    </tr>
    <tr>
        <td>سارة</td>
    </tr>
</table>
تمرين 2 القوائم المنسدلة (Select & Option)

أنشئ قائمة منسدلة للدول:

  1. تحتوي على 3 خيارات (مصر، السعودية، المغرب).
  2. اجعل الخيار الأول "اختر دولتك" غير قابل للاختيار (disabled) ومحدد افتراضياً.
  3. أضف name="country" للقائمة.
الحل
<select name="country">
    <option value="" disabled selected>اختر دولتك</option>
    <option value="eg">مصر</option>
    <option value="sa">السعودية</option>
    <option value="ma">المغرب</option>
</select>
تمرين 3 أزرار الاختيار (Radio & Checkbox)

أنشئ نموذجاً يحتوي على:

  1. اختيار الجنس (ذكر/أنثى) باستخدام Radio Buttons.
  2. اختيار الهوايات (قراءة/سفر) باستخدام Checkboxes.
  3. أضف تسميات (labels) لكل خيار.
الحل
<!-- Radio Buttons -->
<label><input type="radio" name="gender" value="male"> ذكر</label>
<label><input type="radio" name="gender" value="female"> أنثى</label>

<br>

<!-- Checkboxes -->
<label><input type="checkbox" name="hobby1" value="reading"> قراءة</label>
<label><input type="checkbox" name="hobby2" value="travel"> سفر</label>
تمرين 4 أنواع الإدخال الحديثة (HTML5 Inputs)

استخدم حقول الإدخال المناسبة:

  1. تاريخ الميلاد (date).
  2. اللون المفضل (color).
  3. تقييم من 1 إلى 10 (range).
  4. أضف تسميات لكل حقل.
الحل
<label>تاريخ الميلاد: <input type="date" name="birthdate"></label>
<br>
<label>اللون المفضل: <input type="color" name="favcolor"></label>
<br>
<label>التقييم: <input type="range" name="rating" min="1" max="10"></label>
تمرين 5 القوائم الوصفية (Description Lists)

أنشئ قائمة وصفية لتعريف المصطلحات:

  1. HTML: لغة ترميز النص التشعبي.
  2. CSS: أوراق الأنماط المتتالية.
  3. استخدم dl, dt, dd بشكل صحيح.
الحل
<dl>
    <dt>HTML</dt>
    <dd>لغة ترميز النص التشعبي.</dd>
    
    <dt>CSS</dt>
    <dd>أوراق الأنماط المتتالية.</dd>
</dl>
تمرين 6 الاقتباسات (Quotations)

استخدم وسوم الاقتباس:

  1. استخدم blockquote لعرض مقولة مع تحديد المصدر (cite).
  2. استخدم q للاقتباس القصير داخل فقرة.
  3. أضف cite element لذكر مصدر العمل.
الحل
<blockquote cite="https://example.com">
    البرمجة هي فن التفكير.
</blockquote>

<p>قال المعلم: <q>العلم نور</q> ونحن نصدقه.</p>

<p>من كتاب <cite>تعلم البرمجة</cite></p>
تمرين 7 التضمين (Iframes)

قم بتضمين محتوى خارجي:

  1. ضمّن صفحة example.com باستخدام iframe.
  2. اجعل الأبعاد 400x300 بكسل.
  3. أضف title وصفي للإطار.
الحل
<iframe 
    src="https://www.example.com" 
    width="400" 
    height="300" 
    title="موقع خارجي">
</iframe>
تمرين 8 الصور مع الشرح (Figure & Figcaption)

استخدم العناصر الدلالية للصور:

  1. استخدم figure لعرض صورة "chart.png".
  2. أضف figcaption بعنوان "إحصائيات المبيعات".
  3. أضف alt text مناسب للصورة.
الحل
<figure>
    <img src="chart.png" alt="رسم بياني للمبيعات">
    <figcaption>إحصائيات المبيعات</figcaption>
</figure>
تمرين 9 وسوم الميتا (Meta Tags)

اكتب وسوم meta اللازمة:

  1. ضبط viewport للهواتف المحمولة.
  2. إضافة description للصفحة.
  3. إضافة keywords.
الحل
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="هذا وصف مختصر لمحتوى الصفحة">
<meta name="keywords" content="HTML, CSS, JavaScript">
تمرين 10 العناصر التفاعلية (Details & Summary)

أنشئ محتوى قابل للطي:

  1. استخدم details و summary.
  2. اجعل العنوان "اقرأ المزيد".
  3. أضف فقرة نصية داخل المحتوى المخفي.
الحل
<details>
    <summary>اقرأ المزيد</summary>
    <p>هذا النص يظهر فقط عند الضغط على العنوان.</p>
</details>
تمرين 11 Textarea المتقدم متوسط

أنشئ حقل textarea متقدم:

  1. اجعله بحجم 50 عمود و 10 صفوف.
  2. أضف placeholder "اكتب رسالتك هنا".
  3. اجعله مطلوباً (required).
  4. حدد الحد الأقصى للأحرف بـ 500 (maxlength).
الحل
<textarea 
    cols="50" 
    rows="10" 
    placeholder="اكتب رسالتك هنا" 
    required 
    maxlength="500"
    name="message">
</textarea>
تمرين 12 Fieldset و Legend متوسط

نظم النموذج باستخدام fieldset:

  1. أنشئ fieldset لمعلومات شخصية.
  2. أضف legend بعنوان "البيانات الشخصية".
  3. ضع بداخله حقلين: الاسم والبريد الإلكتروني.
الحل
<fieldset>
    <legend>البيانات الشخصية</legend>
    
    <label>الاسم: <input type="text" name="name"></label>
    <br>
    <label>البريد: <input type="email" name="email"></label>
</fieldset>
تمرين 13 Optgroup للقوائم المنسدلة متوسط

نظم القائمة المنسدلة بمجموعات:

  1. أنشئ select للسيارات.
  2. جمّع الخيارات تحت "سيارات ألمانية" و "سيارات يابانية".
  3. أضف خيارين على الأقل لكل مجموعة.
الحل
<select name="cars">
    <optgroup label="سيارات ألمانية">
        <option value="bmw">BMW</option>
        <option value="audi">Audi</option>
    </optgroup>
    <optgroup label="سيارات يابانية">
        <option value="toyota">Toyota</option>
        <option value="honda">Honda</option>
    </optgroup>
</select>
تمرين 14 Output Element متوسط

استخدم output لعرض نتيجة:

  1. أنشئ نموذج بحقلين رقميين (a و b).
  2. أضف output لعرض مجموعهما.
  3. استخدم oninput لتحديث النتيجة تلقائياً.
الحل
<form oninput="result.value=parseInt(a.value)+parseInt(b.value)">
    <input type="number" id="a" value="0"> +
    <input type="number" id="b" value="0"> =
    <output name="result" for="a b">0</output>
</form>
تمرين 15 جدول متقدم مع Caption متوسط

أنشئ جدولاً احترافياً:

  1. أضف caption بعنوان "قائمة الطلاب".
  2. استخدم colgroup لتنسيق الأعمدة.
  3. أضف thead, tbody, tfoot.
الحل
<table border="1">
    <caption>قائمة الطلاب</caption>
    <colgroup>
        <col style="background-color:lightblue">
        <col style="background-color:lightgreen">
    </colgroup>
    <thead>
        <tr><th>الاسم</th><th>الدرجة</th></tr>
    </thead>
    <tbody>
        <tr><td>أحمد</td><td>90</td></tr>
    </tbody>
    <tfoot>
        <tr><td>المجموع</td><td>90</td></tr>
    </tfoot>
</table>
تمرين 16 نموذج تسجيل متكامل متقدم

أنشئ نموذج تسجيل شامل:

  1. حقول: الاسم، البريد، كلمة المرور، تأكيد كلمة المرور.
  2. استخدم autocomplete="off" لكلمة المرور.
  3. أضف pattern للبريد الإلكتروني.
  4. أضف checkbox للموافقة على الشروط (required).
الحل
<form action="/register" method="POST">
    <label>الاسم: <input type="text" name="name" required></label><br>
    
    <label>البريد: 
        <input type="email" name="email" 
               pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$" required>
    </label><br>
    
    <label>كلمة المرور: 
        <input type="password" name="password" autocomplete="off" required>
    </label><br>
    
    <label>تأكيد كلمة المرور: 
        <input type="password" name="confirm" autocomplete="off" required>
    </label><br>
    
    <label>
        <input type="checkbox" name="terms" required>
        أوافق على الشروط والأحكام
    </label><br>
    
    <button type="submit">تسجيل</button>
</form>
تمرين 17 جدول بيانات معقد متقدم

أنشئ جدول درجات الطلاب:

  1. استخدم colspan و rowspan معاً.
  2. أضف scope للرؤوس (col/row).
  3. نظم البيانات في thead, tbody, tfoot.
الحل
<table border="1">
    <thead>
        <tr>
            <th rowspan="2" scope="col">الطالب</th>
            <th colspan="2" scope="colgroup">الدرجات</th>
        </tr>
        <tr>
            <th scope="col">الفصل 1</th>
            <th scope="col">الفصل 2</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <th scope="row">أحمد</th>
            <td>85</td>
            <td>90</td>
        </tr>
    </tbody>
    <tfoot>
        <tr>
            <th scope="row">المعدل</th>
            <td colspan="2">87.5</td>
        </tr>
    </tfoot>
</table>
تمرين 18 نموذج بحث متقدم متقدم

أنشئ نموذج بحث شامل:

  1. استخدم input type="search" مع autofocus.
  2. أضف datalist للاقتراحات.
  3. أضف button type="reset" لمسح البحث.
  4. استخدم method="GET".
الحل
<form action="/search" method="GET">
    <input type="search" 
           name="q" 
           list="suggestions" 
           placeholder="ابحث..." 
           autofocus>
    
    <datalist id="suggestions">
        <option value="HTML">
        <option value="CSS">
        <option value="JavaScript">
    </datalist>
    
    <button type="submit">بحث</button>
    <button type="reset">مسح</button>
</form>
تمرين 19 نموذج رفع ملفات متقدم

أنشئ نموذج لرفع الملفات:

  1. استخدم input type="file" مع accept للصور فقط.
  2. اسمح برفع ملفات متعددة (multiple).
  3. استخدم enctype="multipart/form-data".
  4. أضف حد أقصى لحجم الملف في HTML.
الحل
<form action="/upload" method="POST" enctype="multipart/form-data">
    <label>اختر الصور:
        <input type="file" 
               name="photos" 
               accept="image/*" 
               multiple
               required>
    </label>
    
    <!-- ملاحظة: الحد الأقصى للحجم يتم التحكم به من السيرفر -->
    <input type="hidden" name="MAX_FILE_SIZE" value="5000000">
    
    <button type="submit">رفع</button>
</form>
تمرين 20 مشروع: نموذج استبيان متكامل متقدم

أنشئ استبياناً شاملاً يحتوي على:

  1. معلومات شخصية (fieldset): الاسم، العمر، الجنس.
  2. تقييمات (range inputs): جودة الخدمة، السرعة.
  3. اختيارات متعددة (checkboxes): المميزات المفضلة.
  4. تعليقات (textarea): ملاحظات إضافية.
  5. استخدم جميع أفضل الممارسات (labels, required, validation).
الحل
<form action="/survey" method="POST">
    <fieldset>
        <legend>المعلومات الشخصية</legend>
        <label>الاسم: <input type="text" name="name" required></label><br>
        <label>العمر: <input type="number" name="age" min="18" max="100"></label><br>
        <label><input type="radio" name="gender" value="m"> ذكر</label>
        <label><input type="radio" name="gender" value="f"> أنثى</label>
    </fieldset>
    
    <fieldset>
        <legend>التقييمات</legend>
        <label>جودة الخدمة: 
            <input type="range" name="quality" min="1" max="10" value="5">
        </label><br>
        <label>السرعة: 
            <input type="range" name="speed" min="1" max="10" value="5">
        </label>
    </fieldset>
    
    <fieldset>
        <legend>المميزات المفضلة</legend>
        <label><input type="checkbox" name="features[]" value="design"> التصميم</label><br>
        <label><input type="checkbox" name="features[]" value="speed"> السرعة</label><br>
        <label><input type="checkbox" name="features[]" value="support"> الدعم</label>
    </fieldset>
    
    <label>ملاحظات إضافية:
        <textarea name="comments" rows="5" cols="50" placeholder="اكتب ملاحظاتك..."></textarea>
    </label><br>
    
    <button type="submit">إرسال الاستبيان</button>
</form>
المحرر الذكي

اكتب الكود وشاهد النتيجة فوراً

جرب الآن مجاناً
قناة ديف عربي

تابع أحدث الدروس والتحديثات مباشرة على واتساب

انضم الآن