ممارسة Grid CSS

نظام شبكة 12 عمود

شبكة 12 عمود هو نظام تخطيط كلاسيكي في تطوير الويب. إليك كيفية تنفيذه بـ CSS Grid:

مثال

HTML
<style>
.grid-12 {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 20px;
}
.g-col-3 { grid-column: span 3; }
.g-col-4 { grid-column: span 4; }
.g-col-6 { grid-column: span 6; }
.g-col-8 { grid-column: span 8; }
.g-col-12 { grid-column: span 12; }
.grid-item {
  background: #e8f4f8;
  border: 1px solid #3498db;
  padding: 16px;
  text-align: center;
  border-radius: 4px;
}
</style>
<div class="grid-12">
  <div class="grid-item g-col-3">3 أعمدة</div>
  <div class="grid-item g-col-3">3 أعمدة</div>
  <div class="grid-item g-col-3">3 أعمدة</div>
  <div class="grid-item g-col-3">3 أعمدة</div>
</div>
▶ جرّب الكود

أنماط تخطيط شائعة

تخطيط الكأس المقدس

نمط تخطيط الصفحة الأكثر شيوعاً:

مثال

HTML
<style>
.holy-grail {
  display: grid;
  grid-template-areas:
    "header header header"
    "sidebar main aside"
    "footer footer footer";
  grid-template-columns: 200px 1fr 200px;
  grid-template-rows: 60px 1fr 40px;
  min-height: 100vh;
  gap: 10px;
}
.hg-header { grid-area: header; background: #2c3e50; color: white; }
.hg-sidebar { grid-area: sidebar; background: #34495e; color: white; }
.hg-main { grid-area: main; background: #ecf0f1; }
.hg-aside { grid-area: aside; background: #34495e; color: white; }
.hg-footer { grid-area: footer; background: #2c3e50; color: white; }
.holy-grail > * { padding: 20px; display: flex; align-items: center; justify-content: center; }
</style>
<div class="holy-grail">
  <header class="hg-header">ترويسة</header>
  <aside class="hg-sidebar">شريط جانبي</aside>
  <main class="hg-main">المحتوى الرئيسي</main>
  <aside class="hg-aside">جانبي</aside>
  <footer class="hg-footer">تذييل</footer>
</div>
▶ جرّب الكود

شبكة بطاقات متجاوبة

مثال

HTML
<style>
.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 20px;
  padding: 20px;
}
.card {
  background: white;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  padding: 20px;
}
</style>
<div class="card-grid">
  <div class="card">بطاقة 1</div>
  <div class="card">بطاقة 2</div>
  <div class="card">بطاقة 3</div>
  <div class="card">بطاقة 4</div>
</div>
▶ جرّب الكود

❓ أسئلة شائعة

س لماذا تستخدم أنظمة الشبكة 12 عموداً؟
ج 12 يقبل القسمة على 2 و3 و4 و6 — أقصى مرونة. يمكنك إنشاء نسب 1/2 و1/3 و1/4 و1/6 و2/3 و3/4. Bootstrap وغيرها من الأُطر تستخدم شبكات 12 عموداً — هو المعيار الصناعي.
س شبكة مكتوبة يدوياً مقابل شبكة Bootstrap؟
ج الكتابة اليدوية تساعدك على فهم المبادئ؛ Bootstrap هو تنفيذ مُجمّع. المشاريع الحقيقية تستخدم Bootstrap للكفاءة، لكن فهم المبادئ يساعد عندما لا تلبي الأُطر احتياجات محددة.
س شبكة Flex مقابل شبكة Grid — أيهما أفضل؟
ج لكل نقاط قوة. Flex يناسب الترتيبات أحادية البُعد لكنه لا يستطيع المحاذاة عبر الصفوف. Grid لديه قدرات ثنائية البُعد أقوى. لتوزيع بسيط لصف واحد، Flex يكفي؛ لمحاذاة خطوط الشبكة، استخدم Grid.

📖 ملخص

📝 تمارين

  1. نفّذ نظام شبكة 12 عموداً كاملاً، أنشئ صفحة HTML تعرض تركيبات أعمدة مختلفة (3-3-3-3، 4-4-4، 2-8-2، إلخ).
  2. استخدم الشبكة المتجاوبة لإظهار عمود واحد على المحمول، اثنان على جهاز لوحي، أربعة على سطح المكتب.
  3. استخدم col-offset-3 لتوسيط كتلة محتوى في الصفحة.
  4. أعد تنفيذ شبكة 12 عموداً باستخدام Grid، وقارن اختلافات الكود.
100%