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

المسافة في HTML:   والمسافات المتعددة وwhite-space

تدمج المتصفحات أي تتابع من المسافات في HTML في مسافة واحدة. تعلّم كيف تضيف مسافات إضافية بـ &nbsp;، وما وظيفة المسافة غير القابلة للكسر، وكيف تحافظ على المسافات ومسافات الجدولة بـ <pre> وwhite-space، ومتى يكون تباعد CSS الأداة الأفضل.

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

إضافة مسافات في HTML

اكتب خمس مسافات بين كلمتين في HTML وسيعرض المتصفح مسافة واحدة. أي تتابع من المسافات ومسافات الجدولة والأسطر الجديدة يُدمج في مسافة واحدة. لإضافة مسافات إضافية استخدم كيان المسافة غير القابلة للكسر &nbsp;، مرة لكل مسافة:

&nbsp; مناسب لبضع مسافات في سطر نص. للفجوات الأكبر، أو المسافة بين العناصر، استخدم CSS كما يظهر لاحقًا.

ما وظيفة  

&nbsp; هو المسافة غير القابلة للكسر (المحرف U+00A0). له أثران:

  1. لا يُدمج أبدًا، فثلاثة منه تصنع ثلاث مسافات.
  2. لا ينكسر السطر عنده أبدًا، فتبقى الكلمتان على جانبيه معًا.

الأثر الثاني هو وظيفته الحقيقية. الأرقام ووحداتها، والأحرف الأولى من الأسماء، والعبارات القصيرة التي يبدو تقسيمها على سطرين خاطئًا، كلها تُربط بـ &nbsp;:

في الصندوق الرمادي ينتهي «10» و«km» في سطرين مختلفين. في الأخضر لا يمكن فصلهما. لإبقاء مقطع أطول معًا، يكون white-space: nowrap على span أسهل من تسلسل الكيانات، راجع صفحة السطر الجديد.

كيانات مسافة بعروض مختلفة

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

الكيانالاسمالعرض
&nbsp;مسافة غير قابلة للكسرمثل المسافة العادية
&ensp;مسافة enنصف em
&emsp;مسافة emem واحد (حجم الخط)
&thinsp;مسافة رفيعةجزء من em، يعتمد على الخط
&#8239;مسافة ضيقة غير قابلة للكسررفيعة، ولا يُكسر السطر عندها

يوضح التظليل الأزرق عرض كل مسافة. وحدهما &nbsp; و&#8239; يمنعان أيضًا كسر السطر.

الحفاظ على كل المسافات: pre وwhite-space

عندما يكون التباعد جزءًا من المحتوى (شيفرة، رسوم ASCII، أعمدة محاذاة، شعر)، حافظ على كل المسافات البيضاء بدلًا من إضافة كيانات. العنصر <pre> يفعل ذلك افتراضيًا، وخاصية CSS white-space تفعله لأي عنصر:

قيمة white-spaceالمسافاتالأسطر الجديدةالتفاف الأسطر الطويلة
normal (الافتراضية)تُدمجتصبح مسافاتنعم
nowrapتُدمجتصبح مسافاتلا
preتُحفظتُحفظلا
pre-wrapتُحفظتُحفظنعم
pre-lineتُدمجتُحفظنعم

pre-wrap هي عادةً ما تريده لنص المستخدم: تحافظ على التباعد وتلتف داخل الشاشات الضيقة. أما pre فتُبقي الأسطر كما هي، فيظهر شريط تمرير أو يفيض النص بدلًا من ذلك.

مسافات الجدولة تُحفظ داخل pre أيضًا. عرضها 8 مسافات افتراضيًا، وخاصية tab-size تغيّره (tab-size: 4).

التباعد بـ CSS

معظم حالات «أحتاج مسافة هنا» هي في الحقيقة تخطيط، وCSS ينجزها أفضل من الكيانات، لأن الفجوة تبقى متسقة وتتغير من مكان واحد:

margin وpadding يباعدان العناصر، وgap يباعد العناصر داخل حاوية flex أو grid، وletter-spacing وword-spacing يباعدان النص نفسه. لإزاحة السطر الأول من الفقرة استخدم text-indent، وتشرحه صفحة توسيط النص.

الفجوة بين العناصر السطرية

الوجه الآخر للدمج: المسافة البيضاء بين عنصرين سطريين أو inline-block ما زالت تُحسب كمسافة واحدة. سطر جديد بين زرين في الشيفرة يضع فجوة صغيرة بينهما:

في الزوج الأول فجوة ناتجة عن السطر الجديد في الشيفرة. أما في حاوية flex فتُتجاهل المسافات البيضاء بين العناصر، لذلك يتلامس الزوج الثاني. استخدم flex وgap حين تريد التحكم في المسافة بدقة.

أخطاء شائعة

  • سلاسل من &nbsp; للتخطيط. تنهار بمجرد أن يتغير الخط أو حجم الشاشة. استخدم margin أو padding أو gap.
  • كتابة مسافات إضافية وتوقع ظهورها. تُدمج. استخدم &nbsp; أو white-space: pre-wrap.
  • كتابة &nbsp بلا فاصلة منقوطة. تقبلها المتصفحات عادةً، لكنها غير صالحة وتفشل في بعض المواضع. أنهِها دائمًا بـ ;.
  • استخدام &nbsp; في كل مكان لمنع الالتفاف. المقطع الطويل غير القابل للكسر يفيض على شاشات الهواتف. اربط فقط ما يجب أن يبقى معًا.
  • إزاحة الفقرات بالمسافات. استخدم text-indent في CSS.

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

كيف أضيف مسافة في HTML؟

المسافة الواحدة تعمل كما تكتبها، لكن المسافات الإضافية تُدمج في مسافة واحدة. لمزيد من المسافات استخدم كيان المسافة غير القابلة للكسر &nbsp;، واحدًا لكل مسافة: a&nbsp;&nbsp;&nbsp;b. أما فجوات التخطيط فاستخدم لها margin أو padding أو gap في CSS.

ما معنى &nbsp; في HTML؟

&nbsp; مسافة غير قابلة للكسر. تبدو مثل المسافة العادية، لكن المتصفح لا يكسر السطر عندها أبدًا ولا يدمجها، فتُبقي كلمات مثل 10&nbsp;km معًا وتتيح لك إضافة مسافات إضافية.

لماذا يتجاهل HTML المسافات التي أكتبها؟

يدمج HTML المسافات البيضاء: أي تتابع من المسافات ومسافات الجدولة والأسطر الجديدة يُعرض كمسافة واحدة، وتُحذف المسافات في بداية السطر ونهايته. استخدم &nbsp; أو <pre> أو خاصية CSS white-space للحفاظ عليها.

كيف أضيف مسافة Tab في HTML؟

لا يوجد في HTML محرف Tab مرئي خارج النص المنسق مسبقًا. داخل <pre> أو عنصر يحمل white-space: pre يُحفظ محرف Tab، وتحدد خاصية CSS tab-size عرضه. لإزاحة فقرة استخدم text-indent أو padding-inline-start في CSS.

ما الفرق بين &nbsp; و&emsp;؟

عرض &nbsp; مثل المسافة العادية. عرض &ensp; نصف em، و&emsp; بعرض em واحد (أي حجم الخط). &ensp; و&emsp; لا تُدمجان، لكن على عكس &nbsp; يمكن أن ينكسر السطر عندهما.

Coddy programming languages illustration

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

ابدأ الآن