امتحان HTML 2: النماذج والجداول المتقدمة (20 تمرين)
امتحان HTML 2: المستوى المتوسط
يتكون هذا الامتحان من 20 تمرين شامل يركز على النماذج والجداول المتقدمة.
التمارين 1-10: المستوى الأساسي |
التمارين 11-15: المستوى المتوسط |
التمارين 16-20: المستوى المتقدم
أنشئ جدولاً يحتوي على:
- خلية في الرأس تمتد على عمودين (colspan="2") بعنوان "بيانات الموظف".
- في الصفوف التالية، خلية تمتد على صفين (rowspan="2") باسم القسم "IT".
- أضف حدوداً للجدول.
<table border="1">
<tr>
<th colspan="2">بيانات الموظف</th>
</tr>
<tr>
<td rowspan="2">IT</td>
<td>أحمد</td>
</tr>
<tr>
<td>سارة</td>
</tr>
</table>
أنشئ قائمة منسدلة للدول:
- تحتوي على 3 خيارات (مصر، السعودية، المغرب).
- اجعل الخيار الأول "اختر دولتك" غير قابل للاختيار (disabled) ومحدد افتراضياً.
- أضف name="country" للقائمة.
<select name="country">
<option value="" disabled selected>اختر دولتك</option>
<option value="eg">مصر</option>
<option value="sa">السعودية</option>
<option value="ma">المغرب</option>
</select>
أنشئ نموذجاً يحتوي على:
- اختيار الجنس (ذكر/أنثى) باستخدام Radio Buttons.
- اختيار الهوايات (قراءة/سفر) باستخدام Checkboxes.
- أضف تسميات (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>
استخدم حقول الإدخال المناسبة:
- تاريخ الميلاد (date).
- اللون المفضل (color).
- تقييم من 1 إلى 10 (range).
- أضف تسميات لكل حقل.
<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>
أنشئ قائمة وصفية لتعريف المصطلحات:
- HTML: لغة ترميز النص التشعبي.
- CSS: أوراق الأنماط المتتالية.
- استخدم dl, dt, dd بشكل صحيح.
<dl>
<dt>HTML</dt>
<dd>لغة ترميز النص التشعبي.</dd>
<dt>CSS</dt>
<dd>أوراق الأنماط المتتالية.</dd>
</dl>
استخدم وسوم الاقتباس:
- استخدم blockquote لعرض مقولة مع تحديد المصدر (cite).
- استخدم q للاقتباس القصير داخل فقرة.
- أضف cite element لذكر مصدر العمل.
<blockquote cite="https://example.com">
البرمجة هي فن التفكير.
</blockquote>
<p>قال المعلم: <q>العلم نور</q> ونحن نصدقه.</p>
<p>من كتاب <cite>تعلم البرمجة</cite></p>
قم بتضمين محتوى خارجي:
- ضمّن صفحة example.com باستخدام iframe.
- اجعل الأبعاد 400x300 بكسل.
- أضف title وصفي للإطار.
<iframe
src="https://www.example.com"
width="400"
height="300"
title="موقع خارجي">
</iframe>
استخدم العناصر الدلالية للصور:
- استخدم figure لعرض صورة "chart.png".
- أضف figcaption بعنوان "إحصائيات المبيعات".
- أضف alt text مناسب للصورة.
<figure>
<img src="chart.png" alt="رسم بياني للمبيعات">
<figcaption>إحصائيات المبيعات</figcaption>
</figure>
اكتب وسوم meta اللازمة:
- ضبط viewport للهواتف المحمولة.
- إضافة description للصفحة.
- إضافة keywords.
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="هذا وصف مختصر لمحتوى الصفحة">
<meta name="keywords" content="HTML, CSS, JavaScript">
أنشئ محتوى قابل للطي:
- استخدم details و summary.
- اجعل العنوان "اقرأ المزيد".
- أضف فقرة نصية داخل المحتوى المخفي.
<details>
<summary>اقرأ المزيد</summary>
<p>هذا النص يظهر فقط عند الضغط على العنوان.</p>
</details>
أنشئ حقل textarea متقدم:
- اجعله بحجم 50 عمود و 10 صفوف.
- أضف placeholder "اكتب رسالتك هنا".
- اجعله مطلوباً (required).
- حدد الحد الأقصى للأحرف بـ 500 (maxlength).
<textarea
cols="50"
rows="10"
placeholder="اكتب رسالتك هنا"
required
maxlength="500"
name="message">
</textarea>
نظم النموذج باستخدام fieldset:
- أنشئ fieldset لمعلومات شخصية.
- أضف legend بعنوان "البيانات الشخصية".
- ضع بداخله حقلين: الاسم والبريد الإلكتروني.
<fieldset>
<legend>البيانات الشخصية</legend>
<label>الاسم: <input type="text" name="name"></label>
<br>
<label>البريد: <input type="email" name="email"></label>
</fieldset>
نظم القائمة المنسدلة بمجموعات:
- أنشئ select للسيارات.
- جمّع الخيارات تحت "سيارات ألمانية" و "سيارات يابانية".
- أضف خيارين على الأقل لكل مجموعة.
<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>
استخدم output لعرض نتيجة:
- أنشئ نموذج بحقلين رقميين (a و b).
- أضف output لعرض مجموعهما.
- استخدم 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>
أنشئ جدولاً احترافياً:
- أضف caption بعنوان "قائمة الطلاب".
- استخدم colgroup لتنسيق الأعمدة.
- أضف 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>
أنشئ نموذج تسجيل شامل:
- حقول: الاسم، البريد، كلمة المرور، تأكيد كلمة المرور.
- استخدم autocomplete="off" لكلمة المرور.
- أضف pattern للبريد الإلكتروني.
- أضف 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>
أنشئ جدول درجات الطلاب:
- استخدم colspan و rowspan معاً.
- أضف scope للرؤوس (col/row).
- نظم البيانات في 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>
أنشئ نموذج بحث شامل:
- استخدم input type="search" مع autofocus.
- أضف datalist للاقتراحات.
- أضف button type="reset" لمسح البحث.
- استخدم 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>
أنشئ نموذج لرفع الملفات:
- استخدم input type="file" مع accept للصور فقط.
- اسمح برفع ملفات متعددة (multiple).
- استخدم enctype="multipart/form-data".
- أضف حد أقصى لحجم الملف في 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>
أنشئ استبياناً شاملاً يحتوي على:
- معلومات شخصية (fieldset): الاسم، العمر، الجنس.
- تقييمات (range inputs): جودة الخدمة، السرعة.
- اختيارات متعددة (checkboxes): المميزات المفضلة.
- تعليقات (textarea): ملاحظات إضافية.
- استخدم جميع أفضل الممارسات (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>