Menu
flag Ar iconالعربيةdown icon

الفرق بين margin وpadding في CSS، جنبًا إلى جنب

الحشو padding مسافة داخل حد العنصر، والهامش margin مسافة خارجه. شاهد الاثنين على الصندوق نفسه، جنبًا إلى جنب وبشكل مباشر، ثم تعلّم أيهما تستخدم للخلفيات، ومساحة النقر، والمسافة بين العناصر، والتوسيط.

تحتوي هذه الصفحة على محررات قابلة للتشغيل - حرّر، شغّل، وشاهد النتيجة فوراً.

الفرق في صورة واحدة

الحشو داخل الحد. الهامش خارجه. للصندوقين أدناه المحتوى نفسه والقيمة نفسها 24px؛ الخاصية وحدها تختلف. الرمادي هو الحاوية التي خلفهما.

مع الحشو تكون الـ 24px زرقاء: فهي جزء من الصندوق، داخل الحد، والصندوق يكبر. ومع الهامش تكون الـ 24px رمادية: يبقى الصندوق ملتصقًا بنصه والمسافة الخارجية تدفع حواف الحاوية بعيدًا.

جرّب الاثنين على صندوق واحد

حرّك المنزلقين. الحشو يكبّر الصندوق الأزرق؛ والهامش يبعد الصندوق عن الحواف الرمادية من دون أن يغيّره.

راقب سطر الحجم: يتغير حين تحرك منزلق الحشو ويبقى كما هو حين تحرك منزلق الهامش.

margin وpadding بنظرة سريعة

الحشو paddingالهامش margin
المكانداخل الحدخارج الحد
الخلفيةتظهر فيه خلفية العنصرشفاف دائمًا
جزء من مساحة النقرنعملا
يضيف إلى حجم العنصرنعم، مع content-boxلا
يمكن أن يكون autoلانعم (margin: 0 auto يوسّط)
يمكن أن يكون سالبًالانعم
انهيار القيم العموديةأبدًانعم، الهوامش العمودية المتجاورة تنهار
النسب المئوية نسبةً إلىعرض الكتلة الحاويةعرض الكتلة الحاوية
الاستخدام المعتادالمسافة داخل الأزرار والبطاقات وحقول الإدخالالمسافة بين العناصر، والتوسيط

لكل خاصية صفحتها بكل التفاصيل: padding في CSS وmargin في CSS.

أيهما تستخدم

اسأل سؤالًا واحدًا: هل المسافة تخص العنصر، أم تقع بين العناصر؟

  • المساحة حول تسمية الزر، وداخل البطاقة، والمسافة بين نص حقل الإدخال وحده: الحشو. يأخذ الخلفية ويكبّر الهدف.
  • المسافة بين فقرتين، وبين البطاقات، وحول قسم: الهامش، أو gap حين يكون الأب حاوية flex أو grid.

مساحة النقر هي حيث يهم الاختيار أكثر. الرابطان أدناه يشغلان المساحة نفسها في الصفحة، لكن مسافة الأول حشو ومسافة الثاني هامش. الأول وحده سهل الإصابة:

الإطار الكهرماني المتقطع هو حافة العنصر، وهي المنطقة التي تستجيب للنقرات واللمسات. الهامش حول الرابط الثاني مساحة فارغة لا تفعل شيئًا.

المسافة بين العناصر: margin أم gap

لصف أو شبكة من العناصر، تكون gap على أب flex أو grid عادةً أنظف من الهوامش على كل ابن: فهي تقع بين العناصر فقط، لا قبل الأول ولا بعد الأخير، فلا يوجد ما تحتاج إلى إلغائه.

هنا تستخدم الحاوية الرمادية الحشو (مسافة داخلها، رمادية)، والعناصر تستخدم الحشو (مسافة داخل كل منها، خضراء)، وgap تتولى المسافة بينها.

أخطاء شائعة

  • استخدام الهامش لمسافة يجب أن تكون ملونة. الهامش شفاف. إن كانت المسافة يجب أن تُظهر الخلفية فهي حشو.
  • استخدام الهامش لتكبير رابط. مساحة النقر تنتهي عند الحد؛ استخدم الحشو.
  • توقع أن يصنع هامشان عموديان بـ 20px مسافة 40px. الهوامش العمودية المتجاورة تنهار إلى 20px. الحشو لا ينهار أبدًا.
  • محاولة padding: auto للتوسيط. الهامش وحده يقبل auto.
  • نسيان أن الحشو يكبّر الصندوق. أضف box-sizing: border-box كي تشمله width.

الأسئلة الشائعة

ما الفرق بين margin وpadding؟

الحشو padding هو المسافة بين محتوى العنصر وحده، داخل العنصر. والهامش margin هو المسافة خارج الحد، بين العنصر وجيرانه. تظهر في الحشو خلفية العنصر؛ أما الهامش فشفاف دائمًا.

متى أستخدم padding بدل margin؟

استخدم الحشو للمسافة التي تخص العنصر: المساحة حول نص الزر، وداخل البطاقة، وكل ما يجب أن يشارك الخلفية أو يكون قابلًا للنقر. واستخدم الهامش (أو gap في flex وgrid) للمسافة بين العناصر المنفصلة.

هل يزيد padding أم margin حجم العنصر؟

الحشو يزيده، مع القيمة الافتراضية box-sizing: content-box: يُضاف إلى العرض والارتفاع. أما الهامش فلا يُضاف أبدًا إلى حجم العنصر؛ بل يضيف مسافة حوله (والعنصر الكتلي الذي عرضه width: auto يصبح أضيق، لأن هوامشه تأخذ جزءًا من العرض المتاح). ومع box-sizing: border-box يُقتطع الحشو من داخل العرض بدلًا من ذلك.

هل يمكن أن يكون padding سالبًا مثل margin؟

لا. الحشو السالب غير صالح ويُتجاهل، بينما الهوامش السالبة مسموحة وقد تجعل العناصر تتداخل. ولا يمكن أن يكون الحشو auto أيضًا، ولهذا يستخدم التوسيط margin: 0 auto.

Coddy programming languages illustration

تعلّم البرمجة مع Coddy

ابدأ الآن