ممارسة 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.
📖 ملخص
- أنظمة الشبكة هي حل تخطيط كلاسيكي مُجرب بالزمن
- تنفيذ شبكة 12 عموداً بـ Flexbox ليس معقداً — المفتاح هو فهم العروض النسبية و flex-wrap
- 12 عموداً تقدم تركيبات مرنة مع نقاط توقف متجاوبة
- بينما تستخدم مشاريع كثيرة شبكات Bootstrap أو Tailwind، التنفيذ مرة واحدة بنفسك يُعلّم المبادئ الأساسية حقاً
📝 تمارين
- نفّذ نظام شبكة 12 عموداً كاملاً، أنشئ صفحة HTML تعرض تركيبات أعمدة مختلفة (3-3-3-3، 4-4-4، 2-8-2، إلخ).
- استخدم الشبكة المتجاوبة لإظهار عمود واحد على المحمول، اثنان على جهاز لوحي، أربعة على سطح المكتب.
- استخدم
col-offset-3لتوسيط كتلة محتوى في الصفحة. - أعد تنفيذ شبكة 12 عموداً باستخدام Grid، وقارن اختلافات الكود.



