أول صفحة ويب: HTML من الصفر
درس 1 من 8
1أول صفحة ويب: HTML من الصفر
الصورة الكبيرةكل موقع زرته في حياتك، من جوجل إلى منصة درب، يبدأ بملف نصّي بسيط اسمه HTML. لا يحتاج برنامجًا خاصًا: محرّر نصوص ومتصفح يكفيان. في هذا الدرس تكتب أول صفحة لك بيدك وتراها تعمل.
ماذا تشاهد في الرسم: رحلة ملف HTML: تكتبه في محرّر، يقرؤه المتصفح سطرًا سطرًا، يحوّل كل وسم لعنصر، ثم يرسمها على الشاشة. تعدّل الملف وتضغط تحديث فتتغيّر الصفحة.
خارطة هذا الجزء
المفاهيم بالترتيب، اضغط أيًّا منها للقفز إليه:
طريقان إلى نفس الفكرة
فكّر في الصفحة كرسالة تكتبها لصديق، لكن بملصقات صغيرة توضّح كل جزء: ملصق «عنوان» على السطر الأول، وملصق «فقرة» حول الكلام، وملصق «صورة» حيث تريد الصورة. المتصفح هو صديقك الذي يقرأ الملصقات ويرتّب الرسالة على الشاشة كما طلبت. هذه الملصقات اسمها «وسوم»، ولغة الملصقات اسمها HTML.
HTML لغة توصيف (markup) لا لغة برمجة: لا متغيرات ولا شروط، بل شجرة عناصر. المحلّل (parser) في المتصفح يحوّل النص إلى شجرة DOM، ثم يحسب الأنماط ويرسم. المحلّل متسامح جدًا: يغلق الوسوم المنسية ويصحّح التعشيش الخاطئ بقواعد محدّدة في معيار HTML Living Standard، لذلك قد «تعمل» صفحة فيها أخطاء لكن بشجرة غير التي قصدتها. العناصر نوعان في العرض: كتلية (block) تأخذ سطرًا كاملًا مثل p وh1، وسطرية (inline) تجري داخل النص مثل a وstrong. وبعض العناصر فارغة بلا وسم إغلاق مثل img وbr وinput.
قبل أن تبدأ
💻حاسوب أو جوال ومتصفح
أي متصفح حديث: كروم أو فايرفوكس أو إيدج أو سفاري.
📂الملف والمسار
من مسار «كيف يعمل الحاسوب»: تعرف كيف تحفظ ملفًا وتجده.
🌐كيف يعمل الإنترنت
تعرف أن المتصفح يطلب صفحة من خادم فيرسلها له.
الفكرة الجوهرية
1ما هي صفحة الويب؟ ثلاث لغات وكل واحدة لها دور
حين تفتح موقعًا، يرسل الخادم لمتصفحك ملفات نصية. أهمها ثلاثة، ولكل واحد دور لا يتداخل مع الآخر:
HTML هو الهيكل والمحتوى: ما العنوان، ما الفقرات، أين الصورة، أين الزر. CSS هو الشكل: الألوان والخطوط والمسافات وترتيب الأشياء على الشاشة. JavaScript هو السلوك: ماذا يحدث حين تضغط الزر أو تكتب في خانة. في هذا الدرس والذي بعده نتعلّم HTML، ثم CSS، ثم JavaScript.
2الوسم والعنصر والخاصية
الوسم (tag) كلمة بين قوسين زاويين مثل <p>. أغلب الوسوم تأتي زوجًا: وسم فتح <p> ووسم إغلاق </p> بشرطة مائلة. الوسمان مع ما بينهما يسمّيان عنصرًا (element). والخاصية (attribute) معلومة إضافية تُكتب داخل وسم الفتح بالشكل اسم="قيمة".
تشريح عنصر رابط: الوسمان والمحتوى معًا عنصر واحد، والخاصية href تخبر الرابط إلى أين يذهب.
وسم الفتح المحتوى وسم الإغلاق
| | |
<a href="https://darb.dev"> ادخل درب </a>
\________________/
خاصية: اسم="قيمة"
\_______________________________________/
العنصر كاملًاجرّبها بنفسك: أول وسوم لك
غيّر أي نص في الكود على اليمين وشاهد الصفحة تتحدّث وحدها. لن تكسر شيئًا، وزر الإرجاع يعيد الكود الأصلي.
<strong>مهم ولم تغلقه، يصير كل ما بعده عريضًا حتى نهاية الصفحة تقريبًا. المتصفح لا يظهر رسالة خطأ، بل يخمّن، وتخمينه غالبًا ليس ما قصدت.3هيكل الملف: الرأس والجسم
كل صفحة HTML كاملة لها نفس الهيكل. انسخه في كل ملف جديد تبدؤه:
<!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>
<h1>مرحبًا بالعالم</h1>
<p>هذه أول صفحة أكتبها بيدي.</p>
</body>
</html>سطرًا سطرًا: <!doctype html> يخبر المتصفح أنها صفحة HTML حديثة. <html lang="ar" dir="rtl"> يغلّف كل شيء، وlang لغة الصفحة (تفيد القارئ الصوتي ومحرك البحث)، وdir="rtl" يجعل الاتجاه من اليمين لليسار للعربية. الرأس <head> معلومات عن الصفحة لا تظهر فيها: الترميز utf-8 حتى تظهر الحروف العربية صحيحة، وسطر viewport حتى تناسب الجوال، و<title> النص الذي يظهر على التبويب. الجسم <body> كل ما يراه الزائر.
كيف تجرّب على جهازك؟ (1) افتح محرّرًا: VS Code أو حتى المفكرة (Notepad). (2) الصق الهيكل أعلاه. (3) احفظ الملف باسم index.html (تأكّد أن الامتداد .html لا .txt). (4) انقر الملف مرتين فيفتح في المتصفح. (5) عدّل في المحرّر، احفظ، ثم اضغط F5 في المتصفح لترى التغيير.
! في ملف .html فارغ واضغط Tab: يكتب لك الهيكل كاملًا. وإضافة Live Server تحدّث المتصفح وحدها كلما حفظت.4العناوين والفقرات وتنسيق النص
العناوين ستة مستويات من h1 (الأهم والأكبر) إلى h6. اجعل للصفحة h1 واحدًا يقول موضوعها، ثم h2 للأقسام، ثم h3 لما داخلها، مثل فهرس كتاب. الفقرة p، والسطر الجديد داخل الفقرة br، والخط الفاصل بين موضوعين hr.
صفحة مقهى: عناوين وفقرات
جرّب تغيير h2 إلى h1 ولاحظ كيف يكبر، ثم أضف فقرة جديدة تحت «ساعات العمل».
لاحظ: strong للكلمة المهمة (تظهر عريضة)، وem للتأكيد (مائلة)، وmark للتظليل، وsmall للملاحظات الصغيرة. اختر العنصر حسب المعنى لا حسب الشكل؛ الشكل ستغيّره لاحقًا بـ CSS كما تحب.
h4 لأن حجمه «مناسب»: العناوين خريطة للصفحة يعتمد عليها القارئ الصوتي ومحرك البحث. رتّبها حسب الأهمية وغيّر حجمها بـ CSS.5الروابط والصور
الرابط <a> يأخذ خاصية href بعنوان الوجهة: موقع آخر (https://...)، أو صفحة في موقعك (about.html)، أو قسم في نفس الصفحة (#hours)، أو بريد (mailto:). والصورة <img> عنصر فارغ بلا وسم إغلاق، يأخذ src مسار الصورة وalt وصفها النصّي لمن لا يراها.
روابط وصورة
غيّر width إلى 80 ثم إلى 300. ثم احذف خاصية src وانظر ماذا يظهر مكان الصورة: هذا هو نص alt.
المسار في src وhref نوعان: مطلق يبدأ بـ https:// ويشير لمكان على الإنترنت، ونسبي يبدأ من مكان ملفك الحالي: images/cup.jpg يعني «مجلد images بجانب هذا الملف». ولذلك ترتيب مجلدات مشروعك مهم.
alt فارغًا أو كتابة «صورة». الكفيف يسمع «صورة» ولا يعرف شيئًا. صِف ما فيها في جملة قصيرة، واترك alt="" فقط للصور الزخرفية التي لا تضيف معلومة.6القوائم والجداول
القائمة غير المرتّبة ul (نقاط) والمرتّبة ol (أرقام)، وكل بند فيها li. والجدول table يتكوّن من صفوف tr، وفي كل صف خلايا: th للعنوان وtd للبيانات. استخدم الجدول لبيانات جدولية حقيقية (أسعار، جداول مواعيد)، لا لترتيب شكل الصفحة.
قائمة خطوات وقائمة نقاط وجدول أسعار
أضف خطوة رابعة للقائمة المرتّبة ولاحظ أن الرقم يُكتب وحده. ثم أضف صفًّا جديدًا للجدول لمشروب «كابتشينو».
ul كاملة داخل li، وهكذا تُبنى القوائم المنسدلة في أغلب المواقع.7التعشيش وأدوات المطوّر: اكتشف أخطاءك
العناصر تتداخل كصناديق داخل صناديق: body يحوي ul، وul يحوي li، وli قد يحوي a. القاعدة الذهبية: ما فُتح أخيرًا يُغلق أولًا. <p><strong>نص</strong></p> صحيح، و<p><strong>نص</p></strong> خطأ لأن الصناديق تقاطعت.
هكذا يرى المتصفح صفحتك: شجرة. كل عنصر «ابن» للعنصر الذي يحتويه. هذه الشجرة اسمها DOM وستعدّلها لاحقًا بـ JavaScript.
body
├─ h1 ........ "مقهى درب"
├─ p
│ └─ strong "مقهى درب"
└─ ul
├─ li .... "لاتيه"
└─ li
└─ a . "موكا"أدوات المطوّر (DevTools) مدمجة في كل متصفح: اضغط F12، أو اضغط بالزر الأيمن على أي شيء في الصفحة واختر «فحص» (Inspect). تبويب Elements يريك الشجرة كما فهمها المتصفح فعلًا، لا كما كتبتها. إن كان شيء في غير مكانه، ستراه هنا: عنصر انتقل لمكان غريب، أو وسم أغلقه المتصفح بدلًا منك.
مثال محلول
المسألة: كتب أحمد هذه الصفحة، وكل النص بعد كلمة «تخفيض» ظهر عريضًا، والصورة لا تظهر. ما الأخطاء؟
<h1>عرض اليوم</h2> <p>لاتيه بـ <strong>تخفيض 20%</p> <img src="images/latte.jpg> <p>العرض حتى المساء</p>
التحليل: (1) فُتح h1 وأُغلق بـ h2: الوسمان يجب أن يتطابقا. (2) strong لم يُغلق، فاستمر العرض حتى النهاية. (3) قيمة src ينقصها علامة التنصيص الختامية، فاعتبر المتصفح بقية السطر جزءًا من المسار. (4) الصورة بلا alt. الحل:
النسخة المصحّحة
الصورة لن تظهر هنا لأن الملف غير موجود، لكن لاحظ أن نص alt يظهر مكانها. هذه فائدته.
خرافة مقابل حقيقة
| الخرافة | الحقيقة |
|---|---|
| HTML لغة برمجة. | هي لغة توصيف: تصف المحتوى ولا تنفّذ منطقًا. البرمجة تبدأ مع JavaScript، لكن لا موقع بدون HTML. |
| تحتاج برنامجًا غاليًا لتصنع صفحة ويب. | مفكرة الحاسوب ومتصفح يكفيان. VS Code مجاني ويسهّل الكثير. |
| إن ظهرت الصفحة فالكود صحيح. | المتصفح يصلح أخطاءك بصمت وبتخمين. افحص بأدوات المطوّر والمدقّق. |
أين تقابله في العمل
🌍كل موقع وتطبيق ويب
من المتاجر إلى البنوك إلى منصات التعلّم: كلها تبدأ بـ HTML.
📧رسائل البريد المنسّقة
النشرات البريدية والفواتير الملوّنة مكتوبة بـ HTML.
📱تطبيقات الجوال الهجينة
تطبيقات كثيرة تعرض صفحات HTML داخلها.
اختبر فهمك
أي سطر يكتب رابطًا صحيحًا إلى موقع ويكيبيديا؟
الرابط عنصر a، ووجهته في خاصية href. src للصور.
أين تكتب عنوان التبويب الذي يظهر أعلى المتصفح؟
head معلومات عن الصفحة، ومنها title الذي يظهر على التبويب وفي نتائج البحث.
ما الصحيح في التعشيش؟
ما فُتح أخيرًا يُغلق أولًا: em فُتح داخل p فيُغلق قبله.
لماذا نكتب alt للصورة؟
القارئ الصوتي يقرأ alt، ويظهر النص مكان الصورة إن تعذّر تحميلها.
تريد خطوات وصفة مرقّمة تلقائيًا. أي عنصر؟
ol قائمة مرتّبة: يكتب المتصفح الأرقام ويعيد ترقيمها إن أضفت بندًا.
بطاقات مراجعة سريعة
<p>، تأتي غالبًا زوجًا فتحًا وإغلاقًا.تحقق من فهمك
ما الفرق بين الوسم والعنصر؟
الوسم هو <p> أو </p> وحده، والعنصر هو الاثنان مع المحتوى بينهما.
لماذا نحتاج <meta charset="utf-8">؟
حتى يفهم المتصفح ترميز الحروف فتظهر العربية والرموز صحيحة بدل رموز غريبة.
صورة لا تظهر على صفحتك. ما أول ثلاثة أشياء تفحصها؟
أن المسار في src صحيح بالنسبة لمكان الملف، وأن اسم الملف وامتداده مطابقان تمامًا (حتى الأحرف الكبيرة)، وأن علامات التنصيص مغلقة.
متى تستخدم جدولًا ومتى لا؟
للبيانات المرتّبة في صفوف وأعمدة كالأسعار والمواعيد، لا لترتيب شكل الصفحة؛ الترتيب مهمة CSS.
مصادر هذا الدرس
مرتّبة بالنوع. ابدأ بالتوثيق الرسمي إذا تبي المرجع الدقيق، وبالمقال أو الفيديو إذا تبي الشرح أولًا.
خلّصت الدرس؟
سجّل الدخول ليُحفظ تقدّمك.