Advertisement

تعلم HTML وCSS وJavaScript من الصفر حتى الاحتراف

تعلم HTML وCSS وJavaScript من الصفر حتى الاحتراف مع مشاريع تطبيقية 2026
HTML5 CSS3 JavaScript 📖 دليل شامل 2026

تعلم HTML وCSS وJavaScript
من الصفر حتى الاحتراف

ثلاث لغات، ثلاثة مشاريع تطبيقية، ومسار واضح يوصلك من المبتدئ إلى بناء موقعك الأول بنفسك

✍️ سفيان لهديم 📅 أبريل 2026 ⏱️ وقت القراءة: 18 دقيقة 🎯 مستوى: مبتدئ → متوسط
🚀 البداية

لماذا تتعلم برمجة الويب في 2026؟

كل موقع تزوره، كل تطبيق تستخدمه على هاتفك، وكل صفحة تظهر على شاشتك — كلها مبنية بثلاث لغات فقط: HTML وCSS وJavaScript. هذه الثلاثي هي الأساس الذي يقوم عليه الإنترنت بأكمله.

الخبر الجيد: هذه اللغات من أسهل اللغات البرمجية تعلماً. لا تحتاج شهادة جامعية، ولا جهازاً خاصاً، ولا ميزانية ضخمة. كل ما تحتاجه هو حاسوب، إنترنت، وساعة يومية من التركيز الحقيقي.

الهيكل والبنية

مثل هيكل المبنى — يحدد ما يوجد في الصفحة ومكانه

التصميم والمظهر

مثل الديكور الداخلي — يجعل الصفحة جميلة واحترافية

التفاعل والحركة

مثل الكهرباء — يجعل كل شيء متحركاً وتفاعلياً

💡

في هذا المقال لن تتعلم النظرية فقط — ستبني 3 مشاريع حقيقية يمكنك إضافتها مباشرة لمحفظتك. كل مشروع يطبّق ما تعلمته في القسم السابق.

🛠️ الإعداد

الأدوات التي تحتاجها قبل البدء

لا تحتاج إلى شيء معقد. هذه الأدوات الثلاث كافية تماماً للبدء:

1

VS Code — محرر الكود

الأكثر استخداماً عالمياً بين المطورين. مجاني وسريع ومليء بالإضافات المفيدة. حمّله من code.visualstudio.com

2

Google Chrome — المتصفح

يأتي مع أدوات مطور قوية (اضغط F12). يتيح لك رؤية الكود المصدري، اختبار CSS، وتتبع الأخطاء مباشرة.

3

إضافة Live Server لـ VS Code

تجعل متصفحك يتحدث تلقائياً كلما حفظت الملف. ابحث عنها في متجر إضافات VS Code وثبّتها بنقرة واحدة.

⚠️

تجنّب البدء على منصات إنترنت كـ CodePen في المرحلة الأولى. من الأفضل أن تتعلم العمل على ملفات حقيقية على جهازك — هذه هي البيئة الفعلية للتطوير.

🧱 HTML

HTML — هيكل كل صفحة ويب

HTML ليست لغة برمجة بالمعنى الدقيق — هي لغة ترميز. مهمتها الوحيدة هي إخبار المتصفح بما يجب عرضه: هذا عنوان، وهذه فقرة، وهذه صورة، وهذا رابط.

هيكل صفحة HTML الأساسي

كل صفحة HTML تبدأ بهذا الهيكل الثابت. احفظه لأنك ستستخدمه في كل مشروع:

HTML
⚡ JavaScript

JavaScript — أضف الحياة لصفحتك

HTML وCSS يصنعان موقعاً جميلاً لكنه ساكن. JavaScript هو ما يجعله يتفاعل مع المستخدم. الأزرار التي تفعل شيئاً، النماذج التي تتحقق من البيانات، القوائم المنسدلة، الإشعارات — كل هذا JavaScript.

الأساسيات: المتغيرات والأنواع

JavaScript — المتغيرات
// let — يمكن تغيير قيمته
let name = "أحمد";
let age = 25;
let isStudent = true;

// const — لا يمكن تغيير قيمته (مفضّل للقيم الثابتة)
const SITE_NAME = "Morocco ICO";
const MAX_ITEMS = 10;

// المصفوفات (Arrays)
const skills = ["HTML", "CSS", "JavaScript"];
console.log(skills[0]); // "HTML"

// الكائنات (Objects)
const user = {
  name: "سفيان",
  age: 28,
  blog: "Morocco ICO"
};
console.log(user.name); // "سفيان"

الدوال (Functions)

JavaScript — الدوال
// دالة عادية
function greet(name) {
  return `مرحباً يا ${name}!`;
}
console.log(greet("أحمد")); // مرحباً يا أحمد!

// Arrow Function — الصيغة الحديثة
const double = (n) => n * 2;
console.log(double(5)); // 10

// دالة مع شرط
function getDiscount(price, isStudent) {
  if (isStudent) {
    return price * 0.8; // خصم 20%
  }
  return price;
}

التعامل مع DOM — الجزء الأهم

DOM هو تمثيل JavaScript لعناصر HTML. عبره يمكنك تغيير أي شيء في الصفحة بعد تحميلها:

JavaScript — DOM Manipulation
// اختيار العناصر
const btn    = document.querySelector('#myBtn');
const title  = document.querySelector('h1');
const cards  = document.querySelectorAll('.card');

// تغيير المحتوى
title.textContent = "عنوان جديد";
title.innerHTML   = "عنوان <span>ملوّن</span>";

// تغيير الأنماط
title.style.color    = "#c9a84c";
title.style.fontSize = "2rem";

// إضافة/إزالة كلاسات
btn.classList.add('active');
btn.classList.remove('hidden');
btn.classList.toggle('open');

// الاستجابة للأحداث (Events)
btn.addEventListener('click', function() {
  alert("تم النقر على الزر!");
});

// إنشاء عنصر جديد ديناميكياً
const newCard = document.createElement('div');
newCard.className  = 'card';
newCard.textContent = 'بطاقة جديدة';
document.body.appendChild(newCard);
🔑

المفتاح الذهبي: تعلّم JavaScript بممارسة مشاريع صغيرة، ليس بقراءة المفاهيم النظرية. كل مفهوم جديد — اكتبه فوراً في مشروع حقيقي.

🚀 مشروع 1

مشروع 1: بطاقة تعريفية تفاعلية (HTML + CSS)

🪪
بطاقة ملف شخصي
مستوى: مبتدئ | وقت التنفيذ: 30 دقيقة

تطبّق في هذا المشروع: الهيكل الصحيح لـ HTML، تنسيق CSS، Flexbox، وتأثيرات hover. ستحصل على بطاقة تعريفية جاهزة يمكنك استخدامها في أي مكان.

HTML — profile-card.html
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
  <meta charset="UTF-8">
  <title>بطاقة تعريفية</title>
  <link rel="stylesheet" href="card.css">
</head>
<body>
  <div class="page">
    <div class="card">
      <div class="avatar">👨‍💻</div>
      <h1>سفيان لهديم</h1>
      <p class="role">مطور ويب | مدوّن تقني</p>
      <p class="bio">
        أنشئ محتوى تقنياً بالعربية وأبني أدوات ويب 
        مفيدة للمستخدم العربي
      </p>
      <div class="skills">
        <span>HTML</span>
        <span>CSS</span>
        <span>JavaScript</span>
        <span>SEO</span>
      </div>
      <a href="https://morocco-ico.blogspot.com" 
         class="btn">زيارة المدونة</a>
    </div>
  </div>
</body>
</html>
CSS — card.css
* { box-sizing: border-box; margin: 0; padding: 0; }

body {
  font-family: 'Cairo', sans-serif;
  background: #0f1117;
  color: #e8eaf0;
}

.page {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  padding: 20px;
}

.card {
  background: #161b27;
  border: 1px solid rgba(201,168,76,0.3);
  border-radius: 20px;
  padding: 40px 32px;
  text-align: center;
  max-width: 360px;
  width: 100%;
  transition: transform 0.3s, box-shadow 0.3s;
}

.card:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 60px rgba(201,168,76,0.15);
}

.avatar {
  font-size: 4rem;
  margin-bottom: 16px;
}

h1 {
  font-size: 1.5rem;
  color: #fff;
  margin-bottom: 6px;
}

.role {
  color: #c9a84c;
  font-size: 0.9rem;
  font-weight: 600;
  margin-bottom: 16px;
}

.bio {
  color: #9aa3b8;
  font-size: 0.88rem;
  line-height: 1.7;
  margin-bottom: 20px;
}

.skills {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin-bottom: 24px;
}

.skills span {
  background: rgba(201,168,76,0.1);
  border: 1px solid rgba(201,168,76,0.3);
  color: #c9a84c;
  padding: 4px 14px;
  border-radius: 20px;
  font-size: 0.82rem;
  font-weight: 700;
}

.btn {
  display: inline-block;
  background: #c9a84c;
  color: #0f1117;
  padding: 12px 32px;
  border-radius: 30px;
  text-decoration: none;
  font-weight: 700;
  transition: background 0.2s, transform 0.2s;
}

.btn:hover {
  background: #e8c56a;
  transform: scale(1.04);
}
🚀 مشروع 2

مشروع 2: صفحة هبوط كاملة (HTML + CSS متقدم)

🌐
Landing Page احترافية
مستوى: متوسط | وقت التنفيذ: 1 ساعة

ستبني صفحة هبوط كاملة بقائمة تنقل، قسم رئيسي (Hero)، وقسم مميزات. تطبّق: CSS Grid، Flexbox، متغيرات CSS، وتصميم متجاوب.

HTML + CSS — صفحة هبوط
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
  <meta charset="UTF-8">
  <title>خدمتي الرقمية</title>
  <style>
    :root {
      --bg: #0f1117;
      --gold: #c9a84c;
      --text: #e8eaf0;
    }
    * { box-sizing: border-box; margin: 0; padding: 0; }
    body { font-family: Arial, sans-serif; background: var(--bg); color: var(--text); }

    /* Navbar */
    nav {
      display: flex; justify-content: space-between;
      align-items: center; padding: 16px 40px;
      border-bottom: 1px solid rgba(255,255,255,0.08);
      position: sticky; top: 0; background: var(--bg); z-index: 10;
    }
    .logo { color: var(--gold); font-weight: 900; font-size: 1.2rem; }
    .nav-links { display: flex; gap: 24px; list-style: none; }
    .nav-links a { color: #9aa3b8; text-decoration: none; font-size: 0.9rem; }
    .nav-links a:hover { color: var(--gold); }

    /* Hero */
    .hero {
      text-align: center; padding: 100px 20px;
      background: radial-gradient(ellipse at 50% 0%, rgba(201,168,76,0.07) 0%, transparent 60%);
    }
    .hero h1 { font-size: clamp(2rem, 5vw, 3.5rem); margin-bottom: 16px; }
    .hero h1 span { color: var(--gold); }
    .hero p { color: #9aa3b8; max-width: 500px; margin: 0 auto 32px; }
    .cta {
      background: var(--gold); color: #0f1117;
      padding: 14px 36px; border-radius: 30px;
      text-decoration: none; font-weight: 700; font-size: 1rem;
      display: inline-block;
    }

    /* Features Grid */
    .features {
      display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
      gap: 20px; padding: 60px 40px;
    }
    .feature {
      background: #161b27; border-radius: 12px;
      padding: 24px; text-align: center;
      border: 1px solid rgba(255,255,255,0.06);
    }
    .feature .icon { font-size: 2.5rem; margin-bottom: 12px; }
    .feature h3 { color: #fff; margin-bottom: 8px; }
    .feature p { color: #9aa3b8; font-size: 0.88rem; }
  </style>
</head>
<body>
  <nav>
    <div class="logo">Morocco ICO</div>
    <ul class="nav-links">
      <li><a href="#">الرئيسية</a></li>
      <li><a href="#features">المميزات</a></li>
      <li><a href="#contact">تواصل</a></li>
    </ul>
  </nav>

  <section class="hero">
    <h1>ابنِ موقعك<span> الأول</span> بنفسك</h1>
    <p>تعلم HTML وCSS وJavaScript من الصفر</p>
    <a href="#" class="cta">ابدأ الآن مجاناً</a>
  </section>

  <div class="features" id="features">
    <div class="feature">
      <div class="icon">🧱</div>
      <h3>HTML</h3>
      <p>بنِ هيكل موقعك من الصفر</p>
    </div>
    <div class="feature">
      <div class="icon">🎨</div>
      <h3>CSS</h3>
      <p>صمّم موقعاً احترافياً وجميلاً</p>
    </div>
    <div class="feature">
      <div class="icon"></div>
      <h3>JavaScript</h3>
      <p>أضف التفاعل والحيوية</p>
    </div>
  </div>
</body>
</html>
🚀 مشروع 3

مشروع 3: آلة حاسبة تفاعلية (HTML + CSS + JavaScript)

🧮
آلة حاسبة بـ JavaScript
مستوى: متوسط+ | وقت التنفيذ: 1.5 ساعة

هذا المشروع يجمع الثلاث لغات معاً. ستبني آلة حاسبة تعمل بالفعل مع منطق JavaScript كامل، تصميم CSS احترافي، وهيكل HTML صحيح.

JavaScript — منطق الآلة الحاسبة
// حالة الآلة الحاسبة
let display   = '';
let operator  = null;
let firstNum  = null;
let newInput  = false;

const screen = document.getElementById('screen');

function pressNum(num) {
  if (newInput) {
    display = num;
    newInput = false;
  } else {
    display = display === '0' ? num : display + num;
  }
  screen.textContent = display;
}

function pressOp(op) {
  firstNum = parseFloat(display);
  operator = op;
  newInput = true;
}

function calculate() {
  if (!operator || firstNum === null) return;
  
  const secondNum = parseFloat(display);
  let result;

  switch (operator) {
    case '+': result = firstNum + secondNum; break;
    case '-': result = firstNum - secondNum; break;
    case '×': result = firstNum * secondNum; break;
    case '÷':
      result = secondNum !== 0 ? firstNum / secondNum : 'خطأ';
      break;
  }

  display = result.toString();
  screen.textContent = display;
  operator  = null;
  firstNum  = null;
  newInput  = true;
}

function clearAll() {
  display = '';
  operator = null;
  firstNum = null;
  screen.textContent = '0';
}
💡

بعد إتمام هذا المشروع، لديك آلة حاسبة حقيقية تعمل. هذا المستوى يكفي للحصول على أول عمل حر. أضفها لـ GitHub وضع رابطها في سيرتك الذاتية.

🗺️ خارطة الطريق

مسارك من الصفر إلى الاحتراف

هذه هي الخطوات الحقيقية التي يمر بها كل مطور ناجح. لا تتعجل ولا تقفز مراحل:

1
HTML + CSS
الهيكل والتصميم، Flexbox، Grid، تصميم متجاوب
⏱️ 4-6 أسابيع
2
JavaScript
الأساسيات، DOM، Events، Fetch API
⏱️ 2-3 أشهر
3
React / Vue
إطار عمل Frontend، Components، State Management
⏱️ 2-4 أشهر
4
Git + GitHub
التحكم بالإصدارات، العمل الجماعي، المشاريع المفتوحة
⏱️ 2-3 أسابيع
5
العمل الحر
بناء محفظة أعمال، Upwork، Fiverr، العملاء المحليين
⏱️ متواصل
⚠️

أكبر خطأ يقع فيه المبتدئون هو "تعلم تعلم تعلم" بدون بناء مشاريع. بعد كل أسبوع، ابنِ شيئاً. حتى لو كان بسيطاً. المشاريع هي ما تجعلك مطوراً حقيقياً.

📚 المصادر

أفضل مصادر التعلم المجانية

❓ أسئلة شائعة

أسئلة يسألها كل مبتدئ

هل يجب تعلم HTML قبل CSS؟
نعم، HTML هي الأساس ويجب تعلمها أولاً. CSS تعمل على تنسيق عناصر HTML الموجودة — لا يمكنك تصميم شيء لم تنشئه بعد. لكن عملياً ستتعلمهما معاً بشكل متوازٍ منذ البداية.
كم يستغرق تعلم HTML وCSS وJavaScript؟
مع ساعة يومية منتظمة: HTML وCSS في 4 إلى 8 أسابيع، وJavaScript الأساسي في 3 إلى 4 أشهر. لكن التعلم لا ينتهي — المطور الجيد يتعلم دائماً.
هل يمكن تعلم البرمجة بدون شهادة جامعية؟
بالتأكيد. الشركات الكبرى مثل Google وAmazon أزالت اشتراط الشهادة الجامعية. ما يهم هو مهاراتك الفعلية ومشاريعك على GitHub. كثير من المطورين المغاربة يعملون مستقلين بدخل جيد دون أي شهادة.
ما هو أفضل محرر نصوص للبرمجة؟
VS Code هو الأفضل بلا منازع. مجاني، خفيف، ومدعوم بآلاف الإضافات. إضافات مهمة: Prettier للتنسيق التلقائي، Live Server لمعاينة الصفحات فورياً، و GitLens لإدارة Git.
ماذا أتعلم بعد HTML وCSS وJavaScript؟
الخطوة الطبيعية هي تعلم React (الأكثر طلباً في سوق العمل) أو Vue. بعدها يمكنك الاختيار: إما التخصص في Frontend وتعمق في TypeScript، أو الانتقال لتعلم Node.js والبرمجة الخلفية لتصبح مطور Full Stack.
هل يمكنني الربح من مهارات HTML وCSS وJavaScript؟
نعم وبشكل جيد. يمكنك العمل مستقلاً في بناء مواقع للشركات المحلية والعربية، أو العمل على منصات مثل Upwork وFiverr. في المغرب سوق التصميم الويب نشط جداً خاصة للمحلات التجارية والمطاعم التي تحتاج مواقع بسيطة.
📚 مقالات ذات صلة

✅ الآن حان دورك

لقد قرأت عن HTML وCSS وJavaScript — لكن القراءة وحدها لا تصنع مطوراً. افتح VS Code الآن وابدأ بمشروع البطاقة الشخصية. الكود أمامك، الأدوات مجانية، والطريق واضح. المطور الحقيقي هو من يكتب الكود، لا من يقرأ عنه.

💻
سفيان لهديم
مدوّن تقني ومطور ويب. مؤسس Morocco ICO — أكبر مدونة تقنية عربية في المغرب. أكتب عن البرمجة، الذكاء الاصطناعي، وتقنيات الويب بأسلوب بسيط وعملي.

إرسال تعليق

0 تعليقات

💬 التعليقات