CSS: هوامش وحشو CSS

آخر تحديث: 2026-10-13

المسافات في CSS تأتي بنوعين: حشو وهامش. هما خصائص أساسية للتحكم في "الفراغ الداخلي" و"المسافة الخارجية" للعناصر.

مرجع سريع لخصائص المسافات

الخاصية القيم الشائعة الغرض
padding 16px، 10px 20px، 10px 5px 15px 20px حشو (أعلى، يمين، أسفل، يسار)
padding-top/right/bottom/left 16px، 5% حشو جانب واحد
margin 20px، 0 auto، 10px 0 20px 0 هامش (أعلى، يمين، أسفل، يسار)
margin-top/right/bottom/left 10px، auto هامش جانب واحد
auto margin: 0 auto توسيط عناصر قطعية أفقياً
💡 قاعدة اختصار الهامش: 4 قيم (أعلى، يمين، أسفل، يسار) → 3 قيم (أعلى، يمين+يسار، أسفل) → 2 قيم (أعلى+أسفل، يمين+يسار) → 1 قيمة (جميع الجوانب متساوية).

خصائص هذا القسم: padding margin

1. الحشو

padding هو المسافة بين منطقة المحتوى والحدود — "الفراغ الداخلي" للعنصر.

▶ مثال

▶ جرّب الكود

(1) تعيين جوانب فردية

▶ مثال

▶ جرّب الكود

(2) قواعد اختصار الحشو

💡 خدعة الذاكرة: اختصار الحشو/الهامش يبدأ من "الأعلى" مع عقارب الساعة — أعلى، يمين، أسفل، يسار. لا تتذكر؟ فكّر "مع عقارب الساعة من الساعة 12." قيمتان تعنيان "أعلى+أسفل، يمين+يسار."

CSS
/* قيمة واحدة: جميع الجوانب متساوية */
padding: 20px;

/* قيمتان: أعلى+أسفل، يمين+يسار */
padding: 10px 20px;

/* ثلاث قيم: أعلى، يمين+يسار، أسفل */
padding: 10px 20px 30px;

/* أربع قيم: أعلى، يمين، أسفل، يسار (مع عقارب الساعة) */
padding: 10px 20px 30px 40px;

(3) حالات استخدام الحشو الشائعة

▶ مثال

▶ جرّب الكود

(4) ملاحظات الحشو

📌 ملاحظة العنصر السطري: حشو <span> و<a> والعناصر السطرية الأخرى يعمل فقط أفقياً. إذا أردت مناطق نقر مثالية على العناصر السطرية، اضبط display: inline-block.


2. الهامش

margin هو المسافة بين حدود العنصر والعناصر الأخرى — "المسافة الخارجية" للعنصر.

▶ مثال

▶ جرّب الكود

(1) قواعد اختصار الهامش

نفس الحشو:

CSS
margin: 20px;            /* جميع الجوانب متساوية */
margin: 10px 20px;       /* أعلى+أسفل، يمين+يسار */
margin: 10px 20px 30px;  /* أعلى، يمين+يسار، أسفل */
margin: 10px 20px 30px 40px; /* أعلى، يمين، أسفل، يسار */

(2) حالات استخدام الهامش الشائعة

▶ مثال

▶ جرّب الكود

(3) استخدام margin: auto للتوسيط

margin: 0 auto يمكنه توسيط عنصر قطعي أفقياً داخل أصله:

▶ مثال

▶ جرّب الكود

3. تداخل الهامش

⚠️ فخ كلاسيكي: الهوامش العمودية المتجاورة تتداخل في الأكبر — يُسمى "تداخل الهامش." أبسط إصلاح هو إضافة overflow: hidden أو padding: 1px لعنصر الأصل. استخدام حاوية flex يمنع هذا أيضاً.

هذا مفهوم CSS مهم — الهوامش العمودية المتجاورة تتداخل في واحد، تأخذ القيمة الأكبر.

(1) السيناريو 1: أشقاء متجاورون

▶ مثال

▶ جرّب الكود

(2) السيناريو 2: عناصر أصلية-تابعة

عندما لا يحتوي الأصل على حشو أو حدود أو محتوى، هامش الابن "يخترق" خارج الأصل:

▶ مثال

▶ جرّب الكود

طرق التجنب:

(3) السيناريو 3: عناصر فارغة

عنصر قطعي بدون محتوى أو حشو أو حدود سيكون له أيضاً تداخل في الهوامش العلوية والسفلية.

(4) حالات عدم تداخل الهامش


4. اختيار الحشو مقابل الهامش

السيناريو استخدم أيهما
منع نص الزر من لمس الحواف حشو
إبعاد بطاقتين عن بعضهما هامش
إبعاد المحتوى عن الحدود حشو
توسيط حاوية في الصفحة margin: auto
التحكم في حجم منطقة الخلفية حشو

طريقة قرار بسيطة: هل يجب أن تغطي الخلفية هذه المنطقة؟ إذا نعم، استخدم حشو؛ إذا لا، استخدم هامش.



خصائص هذا القسم: padding margin

❓ أسئلة شائعة

س ما هو تداخل الهامش؟
ج الهوامش العمودية المتجاورة تتداخل في الأكبر. مثلاً، عنصر لديه margin-bottom: 30px، والتالي لديه margin-top: 20px — المسافة الفعلية 30px وليست 50px. إضافة overflow: hidden للأصل أو استخدام تخطيط flex يمنع هذا.
س ماذا لو جعل الحشو العناصر كبيرة جداً؟
ج اضبط عالمياً box-sizing: border-box. هذا يشمل الحشو والحدود في العرض/الارتفاع الكلي للعنصر، مانعاً التوسع. تقريباً جميع المشاريع الحديثة تفعل هذا.
س ما شروط توسيط margin: 0 auto؟
ج يجب أن يكون للعنصر عرض صريح (ليس auto) ويجب أن يكون عنصراً قطيعياً (display: block). العناصر السطرية وعناصر المستوى القطري بدون عرض مُعيَّن لا يمكن توسيطها بـ margin: auto.

📖 ملخص

📝 تمارين

  1. أنشئ صفحة "مجموعة بطاقات" بـ 3 بطاقات، باستخدام الهامش للتحكم في المسافة بين البطاقات.
  2. أنشئ شريط تنقل باستخدام الحشو للتحكم في المسافة من النص إلى الحدود في كل عنصر تنقل.
  3. وضح "تداخل الهامش" وحله ب طريقتين مختلفتين على الأقل.
  4. استخدم margin: 0 auto لتوسيط حاوية بعرض 800px أفقياً في الصفحة.
Web-Tutorial.com

فريق Web-Tutorial التقني

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

100%