الدرس 3 من 8 · آخر تحقق: 2 تشرين الأول 2026

تنسيق الواجهة بنظام حديث: CSS Flexbox والتجاوب مع شاشات الموبايل

بتطلع من هالدرس وأنت قادر على: تنسيق الصفحة بألوان وخطوط عربية متناسقة، وتوزيع العناصر بمرونة تامة باستخدام CSS Flexbox على مختلف الشاشات.

الدرس 3 من 8

المدة التقديرية: فيديو 15:45 + تطبيق وتمرين 55 دقيقة · ضمن منهج البرمجة وتطوير الويب

ليش هالدرس مهم

لأن 80% من زوار المواقع في المنطقة العربية يتصفحون عبر شاشات الهواتف

في الماضي كان تصميم المواقع يعتمد على الجداول والـ float، وكانت النتيجة صفحات تتشوه وتتداخل عناصرها بمجرد فتحها من شاشة جوال صغيرة. اليوم أصبح CSS Flexbox هو المعيار العالمي لتوزيع وترتيب العناصر.

فهمك لمنطق الصناديق (Box Model) والشبكات المرنة (Flexbox) يمكنك من ضبط المسافات، توسيط النصوص، وتوزيع البطاقات جنباً إلى جنب على الشاشات الكبيرة وتحويلها لعمود واحد على الموبايل بسطر كود واحد.

في هذا الدرس سنربط ملف CSS خارجي، نحدد نظام الألوان والخطوط، ونبني تخطيطاً احترافياً لبطاقات الخدمات بمرونة تامة.

الفيديو التوضيحي الموثّق

شاهد الشرح المباشر ثم نفّذ خطوة بخطوة

القناة: كورسات في البرمجة - Korsat X Parmaga · المدة: 15:45 · شاهد التطبيق العملي لخصائص display: flex وjustify-content وalign-items وكيف تعيد ترتيب الصناديق في لحظة.

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

الشرح المكتوب بالتفصيل الممل

خطوات التطبيق العملي على حاسوبك

  1. أنشئ ملفاً جديداً باسم 'style.css' داخل مجلد 'assets/css' واربطه بصفحة HTML عبر وسم داخل . شو رح تشوف على الشاشة: سطر ربط قياسي داخل وسم head يتأكد من تحميل ملف التنسيق مع الصفحة. إذا ما ظهرلك: إذا لم تظهر التغييرات، اضغط Ctrl + F5 بالمتصفح لإفراغ الكاش وإعادة تحميل التنسيق.
  2. اكتب قاعدة التصفير الأساسية (CSS Reset) في أول سطرين: * { margin: 0; padding: 0; box-sizing: border-box; }. شو رح تشوف على الشاشة: إلغاء كل الهوامش الافتراضية المزعجة التي يضعها المتصفح تلقائياً وضبط حساب القياسات بدقة. إذا ما ظهرلك: قاعدة border-box تضمن أن إضافة padding والحدود لا تزيد من الحجم الإجمالي للعنصر.
  3. اضبط خط الصفحة والاتجاه في وسم body: body { direction: rtl; font-family: system-ui, sans-serif; line-height: 1.6; }. شو رح تشوف على الشاشة: النصوص العربية تتحول للاتجاه الصحيح بخط مقروء ومسافات أسطر مريحة للعين. إذا ما ظهرلك: استخدام system-ui يضمن ظهور الخط النظامي السريع بالجهاز دون انتظار تحميل خطوط ثقيلة أوفلاين.
  4. نسّق شريط التنقل في الترويسة باستخدام Flexbox: .nav-container { display: flex; justify-content: space-between; align-items: center; }. شو رح تشوف على الشاشة: الشعار يستقر في اليمين وقائمة الروابط تستقر في اليسار بمسافة متناسقة ومحاذاة رأسية دقيقة. إذا ما ظهرلك: justify-content يتحكم في المحور الأفقي، وalign-items يتحكم في المحور الرأسي.
  5. حوّل قسم الخدمات إلى شبكة بطاقات مرنة: .services-grid { display: flex; flex-wrap: wrap; gap: 20px; }. شو رح تشوف على الشاشة: بطاقات الخدمات تصطف بجانب بعضها مع فواصل منتظمة (gap)، وتنزل للسطر التالي إذا ضاقت المساحة. إذا ما ظهرلك: flex-wrap: wrap تمنع انضغاط البطاقات خارج الشاشة وتجعلها تتدفق بسلاسة.
  6. نسّق بطاقة الخدمة الواحدة: .service-card { flex: 1 1 280px; padding: 20px; background: #fff; border-radius: 8px; border: 1px solid #ddd; }. شو رح تشوف على الشاشة: بطاقات بيضاء أنيقة بظلال خفيفة وزوايا مستديرة تشبه بطاقات التطبيقات الحديثة. إذا ما ظهرلك: خاصية flex: 1 1 280px تجعل البطاقة تتمدد وتتقلص بحد أدنى مناسب للشاشات الصغيرة.
  7. نسّق الأزرار بلون واضح وجذاب ومؤثر عند مرور الفأرة: .btn:hover { opacity: 0.9; transform: translateY(-2px); }. شو رح تشوف على الشاشة: الزر يعطي استجابة بصرية ناعمة عند تحريك المؤشر فوقه تؤكد قابلية النقر. إذا ما ظهرلك: أضف transition: all 0.2s ease لجعل الحركة سلسة وطبيعية.
  8. غيّر حجم نافذة المتصفح يدوياً يمنة ويسرة أو اضغط Ctrl + Shift + M لتفعيل وضع الموبايل في أدوات المطور. شو رح تشوف على الشاشة: البطاقات والترويسة تتكيف وتتغير تلقائياً مع تغير العرض دون ظهور شريط تمرير أفقي سفلي. إذا ما ظهرلك: ظهور شريط تمرير أفقي يعني وجود عنصر أعرض من الشاشة ويحتاج ضبط max-width: 100%.
جرّب بنفسك

التمرين العملي للدرس 3

اربط ملف CSS، وطبّق قاعدة التصفير والاتجاه RTL، ونسّق شبكة بطاقات من 3 خدمات باستخدام display: flex وgap وflex-wrap، وتأكد من تجاوبها عند تصغير شاشة المتصفح دون شريط تمرير أفقي.

معيار النجاح والتسليم

  • ملف style.css مربوط بنجاح وبقاعدة التصفير border-box مطبقة.
  • استخدام Flexbox في الترويسة وشبكة البطاقات مع توزيع متوازن.
  • التصميم يتجاوب تلقائياً مع الشاشات الضيقة دون كسر الهيكل.
فحص سريع

ثلاثة أسئلة للتأكد من استيعاب المفاهيم

ما وظيفة خاصية box-sizing: border-box؟

تجعل حساب عرض العنصر وارتفاعه يشمل الحشوات الداخلية (padding) والحدود (border)، مما يمنع تضخم العناصر وكسر التصميم.

ما الفرق بين justify-content و align-items في Flexbox؟

خاصية justify-content تضبط محاذاة العناصر على المحور الرئيسي (Main Axis - أفقياً عادة)، بينما align-items تضبط المحاذاة على المحور المعاكس (Cross Axis - رأسياً).

كيف نتجنب خروج العناصر خارج الشاشة على الهواتف؟

باستخدام flex-wrap: wrap وضبط max-width: 100% للصور والحاويات وتجنب إعطاء عروض ثابتة بالبكسل الصريح مثل width: 800px.

مستند الدرس

انسخه لملاحظاتك

- CSS Reset: تصفير الهوامش وضبط box-sizing خطوة أولى إلزامية لكل مشروع. - دعم العربية: direction: rtl وline-height مناسب يصنعان الفرق في راحة القراءة. - مرونة Flexbox: تحكم كامل في التوزيع والمحاذاة والفواصل عبر gap. - تجاوب البطاقات: flex: 1 1 280px تمنح البطاقة مرونة التمدد مع الحفاظ على مقاس منطقي. - فحص الموبايل: اختصار Ctrl + Shift + M في المتصفح لمعاينة مختلف أبعاد الهواتف فوراً. - منع التمرير الأفقي: أي شريط تمرير أفقي في الموبايل يعتبر عيباً برمجياً يحتاج مراجعة العروض. - حركات الأزرار: transition بسيطة مع transform تمنح الواجهة طابعاً حياً واحترافياً. - مخرج الدرس: واجهة منسقة وشبكة بطاقات متجاوبة وجذابة بصرياً.
المتابعة والتطبيق

قناة وتطبيقات مهارات سوريا

شارك إنجازك في مجموعتنا التفاعلية وتابع فرص العمل الحر البرمجية عبر تيليغرام.