جاري التحميل...

مقدمة CSS Grid

CSS Grid (شبكة CSS) هي أداة قوية لتنظيم وتخطيط العناصر داخل صفحة الويب بشكل شبكي ومنظم. تشبه CSS Grid بناء منزل: تقوم بتحديد الأعمدة والصفوف أولاً ثم وضع الأثاث (العناصر) في المكان المناسب. باستخدام CSS Grid، يمكن للمصمم إنشاء تخطيطات مرنة وسهلة التعديل سواء لمواقع الأخبار، أو مواقع التجارة الإلكترونية، أو الصفحات الشخصية، أو البوابات الحكومية، دون الحاجة للكثير من الحيل المعقدة مثل الفواصل الطافية (float) أو الجداول القديمة.
سيتعلم القارئ في هذا الدرس كيفية إنشاء شبكة أساسية، كيفية توزيع العناصر داخلها، وكيفية التحكم بأحجام الأعمدة والصفوف. سنستخدم أمثلة بسيطة ومباشرة لتوضيح الفكرة: مثال أساسي لإنشاء شبكة 3×3، ومثال عملي لتطبيق شبكة على صفحة إخبارية أو متجر إلكتروني. من خلال هذا الدرس، ستصبح قادرًا على تنظيم المحتوى بطريقة جذابة ومرنة، مثل ترتيب الكتب في مكتبة أو ترتيب غرف في منزل.

مثال أساسي

css
CSS Code
.container {
display: grid; /* تفعيل CSS Grid على الحاوية */
grid-template-columns: 100px 100px 100px; /* إنشاء ثلاثة أعمدة */
grid-template-rows: 50px 50px 50px; /* إنشاء ثلاثة صفوف */
gap: 10px; /* مسافة بين العناصر */
}

.item {
background-color: lightblue; /* لون العنصر للتوضيح */
text-align: center; /* محاذاة النص داخل العنصر */
}

في المثال أعلاه، قمنا أولاً بتحديد الحاوية (container) لتكون شبكة باستخدام display: grid. الخاصية grid-template-columns تحدد عدد الأعمدة وأحجامها، بينما grid-template-rows تحدد الصفوف. هذا يسمح لك بوضع العناصر بشكل منتظم تمامًا مثل رسم خطة منزل أو ترتيب رفوف المكتبة.
خاصية gap تضيف مسافة بين العناصر لتجنب التصاقها، وهذا مهم في تصميم واجهات المستخدم. بعد ذلك، قمنا بتصميم العناصر الفردية (item) لتكون مرئية باستخدام لون خلفية lightblue ومحاذاة النص إلى المنتصف.
هذا المثال يوضح كيفية إنشاء شبكة بسيطة ثلاثية الصفوف والأعمدة، ويمكن تطبيقها على صفحة إخبارية حيث يتم عرض الأخبار في أعمدة، أو على متجر إلكتروني حيث يتم عرض المنتجات بشكل مرتب. CSS Grid يجعل من السهل تعديل التخطيط لاحقًا دون الحاجة لإعادة كتابة كل شيء، مما يوفر وقتًا ويجعل التصميم أكثر مرونة.

مثال عملي

css
CSS Code
.news-grid {
display: grid;
grid-template-columns: repeat(3, 1fr); /* ثلاثة أعمدة متساوية */
grid-auto-rows: 150px; /* ارتفاع الصفوف تلقائي */
gap: 15px;
}

.news-item {
background-color: #f0f0f0;
padding: 10px;
border: 1px solid #ccc;
}

في المثال العملي، استخدمنا repeat(3, 1fr) لإنشاء ثلاثة أعمدة متساوية الحجم، وهذه طريقة أكثر مرونة من تحديد كل عمود يدويًا. قيمة 1fr تعني "جزء من المساحة المتاحة"، مما يجعل التصميم متجاوبًا مع حجم الشاشة. خاصية grid-auto-rows تحدد ارتفاع الصفوف تلقائيًا لضمان تناسق التصميم.
الفجوة gap بين العناصر تضمن فصل العناصر بصريًا، مما يسهل قراءة المحتوى. تصميم العناصر الفردية news-item يشمل padding ومسافة داخلية وحواف border لتمييز كل عنصر بشكل واضح. هذا المثال مناسب لمواقع الأخبار أو المتاجر الإلكترونية حيث يتم عرض محتوى متعدد العناصر في شبكة منظمة.
استخدام CSS Grid بهذه الطريقة يسمح للمصممين بإنشاء تخطيطات نظيفة وسهلة الصيانة، ويساعد على تجنب الفوضى في ترتيب العناصر، كما يسهل دمجها مع JavaScript لتطبيق تأثيرات تفاعلية مستقبلًا.

أفضل الممارسات عند استخدام CSS Grid تشمل:

  1. البدء بتصميم Mobile-First: قم بتصميم الشبكة للشاشات الصغيرة أولًا ثم زد التعقيد للشاشات الكبيرة.
  2. استخدام وحدات fr بدلًا من البكسل لتخطيطات مرنة.
  3. الحفاظ على الكود نظيفًا ومنظمًا لتسهيل الصيانة.
  4. اختبار الشبكة على أجهزة مختلفة لضمان توافق التصميم.
    الأخطاء الشائعة التي يجب تجنبها:

  5. الإفراط في تحديد أحجام الأعمدة والصفوف بالبكسل مما يقلل من مرونة التصميم.

  6. استخدام overrides كثيرة للخصائص مما يؤدي لصعوبة في صيانة الكود.
  7. تجاهل التصميم المتجاوب.
    نصائح التصحيح: استخدم أدوات المتصفح لفحص شبكة CSS، وتأكد من أن gap وأحجام الأعمدة والصفوف تعمل كما هو متوقع.

📊 مرجع سريع

Property/Method Description Example
display تفعيل Grid على الحاوية display: grid;
grid-template-columns تحديد أعمدة الشبكة grid-template-columns: 100px 200px;
grid-template-rows تحديد صفوف الشبكة grid-template-rows: 50px 50px;
gap مسافة بين العناصر gap: 10px;
repeat تكرار الأعمدة بسهولة grid-template-columns: repeat(3, 1fr);
grid-auto-rows تحديد ارتفاع الصفوف تلقائيًا grid-auto-rows: 150px;

في الخلاصة، CSS Grid هو أداة قوية لبناء تخطيطات منظمة ومرنة لمختلف أنواع المواقع. فهم أساسيات grid-template-columns و grid-template-rows و gap يسمح لك بتنظيم المحتوى بشكل واضح، ويسهل دمجه مع عناصر HTML الأخرى أو إضافة تفاعلات باستخدام JavaScript. الخطوة التالية بعد هذا الدرس يمكن أن تكون تعلم خصائص متقدمة مثل grid-template-areas و align-items و justify-content. الاستمرار في الممارسة العملية على أمثلة حقيقية مثل مواقع الأخبار والمتاجر الإلكترونية سيجعل من السهل بناء تخطيطات احترافية ومرنة في المستقبل.

🧠 اختبر معرفتك

جاهز للبدء

اختبر معرفتك

اختبر فهمك لهذا الموضوع بأسئلة عملية.

3
الأسئلة
🎯
70%
للنجاح
♾️
الوقت
🔄
المحاولات

📝 التعليمات

  • اقرأ كل سؤال بعناية
  • اختر أفضل إجابة لكل سؤال
  • يمكنك إعادة الاختبار عدة مرات كما تريد
  • سيتم عرض تقدمك في الأعلى