gap
خاصية المسافة بين العناصر gap
خاصية gap تضع مسافات بين أبناء flex أو grid من الحاوية نفسها — وداعًا لهوامش الأبناء وحواف «العنصر الأخير» الشاذة.
قبلها كانت المسافات تُبنى بهوامش على كل ابن، مع خدعة إزالة هامش الأخير — هشاشة كاملة. gap تحلها من الحاوية بسطر: مسافة بين العناصر فقط، لا قبل الأول ولا بعد الأخير، وتتكيف مع الالتفاف والاتجاه وRTL تلقائيًا.
بقيمتين تفرق بين الصفوف والأعمدة: gap: 24px 12px (صفوف ثم أعمدة). تعمل في flex وgrid وحتى الأعمدة الصحفية.
الصياغة
.container {
display: flex; /* أو grid */
gap: 16px; /* أو: gap: 24px 12px (صفوف أعمدة) */
}⚡ جرّب بنفسك
عدّل الكود واضغط «تحديث» لترى النتيجة فورًا — التجربة أفضل معلّم.
🎨 محرّر HTML/CSS
<style>
.demo { display: flex; flex-wrap: wrap; gap: 12px; background: #ede9fe; padding: 12px; border-radius: 10px; }
.demo span { background: #7c5cff; color: white; padding: 8px 16px; border-radius: 8px; }
</style>
<div class="demo">
<span>عنصر</span><span>عنصر</span><span>عنصر</span><span>عنصر</span><span>عنصر</span>
</div>
<p>مسافات متساوية بلا هامش واحد على الأبناء — ولا حافة شاذة عند الالتفاف.</p>النتيجة المباشرة:
أهم القيم
| القيمة | الوظيفة |
|---|---|
| gap: 16px | مسافة موحدة بين الكل — صفوفًا وأعمدة |
| gap: 24px 12px | قيمتان: بين الصفوف ثم بين الأعمدة |
| row-gap / column-gap | الصيغتان المنفصلتان لكل اتجاه |
💡 نصائح عملية
- مسافات بين الإخوة = gap من الأب؛ مسافة عنصر عن محيطه = margin — تقسيم أدوار نظيف
- تلمع مع flex-wrap: المسافات تبقى مثالية بين الأسطر الملتفة تلقائيًا
⚠️ أخطاء شائعة
- بناء المسافات بهوامش الأبناء + خدعة last-child — النمط القديم الهش
- توقعها بين عناصر عادية بلا flex/grid على الأب — لا تعمل هناك
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار CSS الكامل بالعربي.
📚 للتعمق التقني الكامل بالإنجليزية: MDN Web Docs