انتقل إلى محتوى الدرس
الدرس 115
تاريخ النشر: تاريخ التحديث:
دورة لغة CSS

صفحات متجاوبة بنظام Grid في لغة CSSCSS Grid Media Queries طريقة دمج الشبكة مع استعلامات الوسائط، والهيكلة المعمارية لصفحة الويب، ورص مناطق الصفحة للهاتف أولاً

أعد تشكيل الهيكل المعماري الكامل لصفحات الويب الدلالية عبر شاشات الهاتف واللوحي والحاسوب بدمج مناطق الشبكة المسماة مع استعلامات الوسائط التصاعدية والانعكاس التلقائي لاتجاه اللغة العربية والإنجليزية.
أقسام الدرس
6
الأمثلة
3
اللغة
العربية
المشاهدات
2,439
محتوى الدرس
في هذا الدرس 6تصفّح المواضيع

بينما تتألق أصناف الامتداد في توزيع صفوف البطاقات، يحتاج الهيكل المعماري الكامل لصفحة الويب—المؤلف من الشريط العلوي وقائمة التنقل والمحتوى الرئيسي والشريط الجانبي والتذييل—إلى إعادة تشكيل شاملة لمواقع المناطق بين شاشة الهاتف الضيقة وشاشة الحاسوب العريضة.

يتيح دمج خاصية المناطق المسماة grid-template-areas مع استعلامات @media إعادة رسم خريطة الصفحة بأكملها من داخل الحاوية الأب وحدها؛ فتظل عناصر HTML الدلالية مرتبة في المصدر بتسلسل منطقي نظيف واحد بينما تتكفل الأنماط بإعادة توزيع المسارات والمناطق عند كل نقطة توقف.

مخطط يوضح تحول خريطة المناطق المسماة من عمود رأسي للهاتف إلى عمودين للوحي وثلاثة أعمدة للحاسوب مع انعكاس الاتجاه

لتجهيز الهيكل المعماري القياسي لصفحة موقع متكامل، نمنح كل عنصر دلالي صنفاً مسطحاً بسيطاً يسند إليه اسماً واضحاً عبر خاصية grid-area مرة واحدة فقط. لاحظ أن هذه الأصناف الخمسة لا تحتوي على أي عرض أو رقم عمود أو استعلام وسائط، بل تعرّف هوية كل منطقة فحسب (header وnav وmain وaside وfooter):

CSS
.area-header { grid-area: header; }
.area-nav    { grid-area: nav; }
.area-main   { grid-area: main; }
.area-aside  { grid-area: aside; }
.area-footer { grid-area: footer; }

تطبيقاً لمنهجية الهاتف أولاً، تعرّف القاعدة الأساسية للحاوية .page-shell خارج أي استعلام وسائط عموداً مرناً واحداً grid-template-columns: 1fr; وترصّ المناطق الخمس عمودياً بالترتيب المنطقي القرائي، بحيث يصل زائر الهاتف إلى المحتوى الأساسي main قبل الملحقات الجانبية aside دون أي تمرير أفقي:

CSS
.page-shell {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-areas:
    "header"
    "nav"
    "main"
    "aside"
    "footer";
  gap: 10px;
}

والآن نضيف استعلامي min-width تصاعديين يعدّلان الحاوية .page-shell وحدها دون المساس بأي عنصر ابن! فعند عرض 768px للوحي نوسّع الشبكة إلى عمودين 180px 1fr لتستقر القائمة بجانب المحتوى، وعند عرض 1024px للحاسوب ننتقل إلى ثلاثة أعمدة 180px 1fr 200px مع grid-template-rows: auto 1fr auto; ليتمدد الصف الأوسط تلقائياً:

CSS
@media (min-width: 768px) {
  .page-shell {
    grid-template-columns: 180px 1fr;
    grid-template-areas: "head head" "nav main";
  }
}
@media (min-width: 1024px) {
  .page-shell {
    grid-template-columns: 180px 1fr 200px;
    grid-template-areas: "nav main aside";
  }
}

تبرز إحدى أقوى مزايا CSS Grid في المنصات ثنائية اللغة العربية والإنجليزية في الانعكاس التلقائي للمحور الأفقي. فعند كتابة السطر "nav main aside" توضع المنطقة الأولى nav عند حافة بداية القراءة، وتوضع المنطقة الثالثة aside عند حافة نهاية القراءة تلقائياً.

في الواجهة الإنجليزية ذات dir="ltr" تظهر قائمة nav يساراً وaside يميناً، وبمجرد التحويل إلى العربية dir="rtl" تنعكس الأعمدة الثلاثة فوراً فتستقر nav على اليمين وaside على اليسار دون تكرار سطر واحد داخل استعلامات @media! ويمكنك التحقق من حدود المناطق وأسمائها مباشرةً بالنقر على شارة grid في أدوات المطور وتفعيل خيار إظهار أسماء المناطق داخل لوحة Layout.

يجمع مهندسو الواجهات المحترفون بين التجاوب الذاتي التلقائي للشبكة واستعلامات @media الشرطية بتكامل ذكي: فنستخدم grid-template-areas مع نقاط التوقف لتشكيل الهيكل الخارجي العام للصفحة، ونضع بداخل منطقة <main> شبكة ذاتية عبر repeat(auto-fit, minmax(220px, 1fr)) لتوزيع البطاقات المتماثلة تلقائياً!

هدف التخطيطالتقنية الموصى بهاسبب ملاءمتها الهندسية
الهيكل العام للصفحة (علوي، تنقل، رئيسي، جانبي، تذييل)grid-template-areas مع @mediaيعيد توزيع المناطق المختلفة بدقة مدروسة لكل فئة شاشة
معرض بطاقات متماثلة داخل المحتوىrepeat(auto-fit, minmax(220px, 1fr))يلف البطاقات المتساوية تلقائياً دون استعلامات إضافية
صف لوحة تحكم متفاوت النسبrepeat(12, 1fr) مع .col-md-6يحاذي الألواح المتفاوتة على مسارات عمودية منضبطة
واجهة ثنائية اللغة عربي وإنجليزيشبكة مسماة مع سمة dir="rtl"يعكس مواقع الأعمدة وعروضها تلقائياً بلا تكرار
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

في ملخص الدرس أتقنت تسمية مناطق الصفحة الدلالية عبر grid-area ورصّها للهاتف أولاً ثم إعادة تشكيل خريطتها عند نقطتي 768px و1024px مع الاستفادة من الانعكاس التلقائي للاتجاه وفحصها في أدوات المطور. وفي الخطوة التالية ننتقل إلى درس فيديو متجاوب مع جميع الأجهزة في لغة CSS لضبط تحجيم مشغلات الفيديو والإطارات المضمنة بحفظ تناسب أبعادها على كافة الشاشات.

مشاركة

هل كان هذا الدرس مفيدًا؟

جارٍ تحميل الآراء…

ابنِ لغتك البرمجية

المصطلحات4

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 4 مفهومةأول بطاقة، أول خطوة
01 Holy Grail Page Layout الهيكل المعماري القياسي للصفحة
تخطيط الصفحة المتكامل الذي يضم منطقة علوية وتذييلاً بكامل العرض وبينهما ثلاثة أعمدة للتنقل والمحتوى الرئيسي والجانبي.
للمراجعة
02 Named Grid Area منطقة الشبكة المسماة
اسم دلالي يُسند للعنصر عبر خاصية grid-area ويُحدَّد موقعه البصري داخل الخريطة النصية grid-template-areas في الأب.
للمراجعة
03 Empty Cell Dot Token نقطة الخلية الفارغة
حرف النقطة داخل خريطة grid-template-areas الذي يترك خلية محددة فارغة في التخطيط دون إضافة عناصر وهمية للمستند.
للمراجعة
04 Inline-Axis Grid Mirroring انعكاس محور الشبكة التلقائي
عكس ترتيب أعمدة الشبكة تلقائياً من اليمين إلى اليسار عند وجود سمة dir="rtl" دون إعادة كتابة الأنماط.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

حروف قليلة. معنى كامل.

الاختصارات3

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 3 مفهومةأول بطاقة، أول خطوة
01 DOM DOM
Document Object Model
ترتيب شجرة المستند الذي تتبعه لوحة المفاتيح وقارئات الشاشة بغض النظر عن الترتيب البصري لمناطق الشبكة.
للمراجعة
02 RTL RTL
Right-to-Left
اتجاه التخطيط من اليمين إلى اليسار حيث يبدأ العمود الأول في خريطة المناطق المسماة عند الحافة اليمنى.
للمراجعة
03 LTR LTR
Left-to-Right
اتجاه التخطيط من اليسار إلى اليمين حيث يبدأ العمود الأول في خريطة المناطق المسماة عند الحافة اليسرى.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

من الفهم للتطبيق

مهامك قبل الاختبار

خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.

0/2مهام منجزة
  1. افتح مثال المناطق المسماة المتجاوبة وعاين نقطة التوقف 768px حيث تمتد منطقة nav في العمود الجانبي ويتتابع main ثم aside في العمود المقابل.

  2. في نفس المثال التفاعلي أضف السمة dir="rtl" إلى وسم <html> وتأكد عند عرض 1024px من انتقال قائمة التنقل لليمين والشريط الجانبي لليسار دون تعديل أي سطر في CSS.

تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.

مساحة التحدي

اختبر فهمك.
ووصلها للإتقان.

كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.

8أسئلة 2أنواع تحديات 100%هدف الإتقان
تصحيح تلقائي. فرص بلا حدود.

أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.

الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.

لمحة عن التحدي8 أسئلة تنتظرك
01

أي خاصية في CSS تمنح العنصر الدلالي (مثل <nav>) اسماً معرفاً لتوزيعه داخل خريطة grid-template-areas؟

02

ما الشكل الهندسي الذي يجب أن تكوّنه كل منطقة مسماة داخل grid-template-areas ليكون التصريح صحيحاً؟

03

أي رمز يُستخدم داخل السطر النصي لخاصية grid-template-areas لترك خلية فارغة عمداً؟

04

عند إعادة تشكيل هيكل الصفحة عبر الهاتف واللوحي والحاسوب بخاصية grid-template-areas، ما الذي نحتاج لتحديثه داخل استعلام @media؟

05

يتبع التنقل بمفتاح Tab في لوحة المفاتيح المواقع البصرية المرسومة في grid-template-areas بدلاً من ترتيب عناصر HTML في المصدر.

06

في صفحة عربية تحمل السمة dir="rtl"، يضع السطر "nav main aside" منطقة nav على اليمين ومنطقة aside على اليسار تلقائياً.

07

أي قيمة لخاصية grid-template-rows تجعل الشريط العلوي والتذييل بحجم محتواهما بينما يتمدد صف المحتوى الأوسط لملء الارتفاع؟

08

متى يُنصح بالجمع بين repeat(auto-fit, minmax(220px, 1fr)) وبين استعلامات @media مع grid-template-areas؟