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

توسيط النص في HTML: text-align والتوسيط العمودي والإزاحة

وسّط النص في HTML بخاصية CSS text-align: center. تعلّم أين تضعها، ولماذا لا تعمل على span، وكيف توسّط النص عموديًا داخل صندوق، وكيف تحاذي النص إلى البداية أو النهاية أو الحافتين معًا، وكيف تزيح الفقرات.

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

كيف توسّط النص في HTML

استخدم خاصية CSS text-align: center على العنصر الذي يحمل النص:

text-align توسّط كل سطر داخل العنصر، بما في ذلك العناصر السطرية مثل الروابط والصور والأزرار. وهي خاصية موروثة، فضبطها على حاوية يوسّط النص في كل ما بداخلها.

ضعها على العنصر الكتلي لا على span

text-align تعمل على الحاويات الكتلية: <p> و<div> والعناوين وخلايا الجداول. على <span> أو <a> لا تفعل شيئًا، لأن عرض العنصر السطري بقدر نصه فقط فلا توجد مساحة للتوسيط داخله:

الحل دائمًا هو نفسه: انقل text-align: center إلى العنصر الكتلي الأب.

وسّط الكتلة وحاذِ الأسطر إلى البداية

في فقرة من عدة أسطر، يصعب قراءة النص الموسَّط كليًا لأن كل سطر يبدأ من مكان مختلف. من الأنماط الشائعة توسيط الكتلة في الصفحة مع إبقاء نصها محاذيًا إلى البداية:

margin-inline: auto توسّط كتلة لها عرض محدد، وtext-align توسّط الأسطر داخلها. أما توسيط الصناديق (بـ flexbox أو grid أو الهوامش) فتشرحه صفحة توسيط div.

توسيط النص عموديًا

text-align تعمل أفقيًا فقط. لتوسيط النص عموديًا داخل صندوق، اجعل الصندوق حاوية flex:

align-items: center توسّط عموديًا، وjustify-content: center توسّط أفقيًا، وتبقى text-align: center توسّط الأسطر بالنسبة لبعضها حين يكون هناك أكثر من سطر. حيلة line-height لا تعمل إلا مع سطر نص واحد في صندوق معروف الارتفاع.

كل قيم text-align

القيمةالنتيجة
start (الافتراضية)تبدأ الأسطر من حافة البداية: اليسار في الإنجليزية، واليمين في العربية والعبرية
endتنتهي الأسطر عند حافة النهاية
centerأسطر موسَّطة
justifyتتمدد الأسطر لتلامس الحافتين (عدا السطر الأخير)
left, rightدائمًا يسار أو دائمًا يمين، أيًا كانت اللغة

فضّل start وend على left وright: فهما تنقلبان تلقائيًا في اللغات المكتوبة من اليمين إلى اليسار، كما يظهر في الصندوق الأخير.

وسم center القديم

الصفحات القديمة توسّط النص بـ <center> أو بسمة align:

<center>Old way</center>
<p align="center">Also old</p>

كلاهما مهجور. ما زالت المتصفحات تعرضهما كي لا تتعطل المواقع القديمة، لكنهما غير صالحين في HTML الحالي ويخلطان التخطيط بالبنية. استخدم text-align: center في CSS.

إزاحة النص

لا يوجد في HTML وسم للإزاحة، والمسافات المكتوبة تُدمج (راجع المسافة في HTML). الإزاحة من شأن CSS:

الإزاحةCSS
السطر الأول فقطtext-indent: 2em
الكتلة كلهاpadding-inline-start: 2em أو margin-inline-start: 2em
معلّقة (السطر الأول للخارج)padding-inline-start: 2em; text-indent: -2em

الوحدة em تربط الإزاحة بحجم الخط، فتتغير مع النص.

أخطاء شائعة

  • text-align على عنصر سطري. ضعها على العنصر الكتلي الأب.
  • توقع أن توسّط text-align صندوقًا. هي توسّط النص والمحتوى السطري، لا كتلة لها عرض. استخدم margin-inline: auto أو flexbox للصناديق.
  • استخدام <center> أو align="center". مهجوران. استخدم CSS.
  • توسيط الفقرات الطويلة. وسّط العناوين والأسطر القصيرة، وأبقِ نص المحتوى محاذيًا إلى البداية.
  • الإزاحة بـ &nbsp; أو بالمسافات. استخدم text-indent أو الحشو.

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

كيف أوسّط النص في HTML؟

أضف text-align: center إلى العنصر الذي يحتوي على النص، مثل <p style="text-align: center"> أو قاعدة CSS مثل h1 { text-align: center; }. توسّط هذه الخاصية كل أسطر النص والمحتوى السطري داخل ذلك العنصر.

لماذا لا تعمل text-align: center على span؟

span عنصر سطري، فعرضه بقدر نصه فقط ولا توجد مساحة للتوسيط داخله. ضع text-align: center على العنصر الكتلي الأب (<p> أو <div> المحيط به)، أو اجعل span بقيمة display: block.

كيف أوسّط النص عموديًا؟

اجعل الحاوية صندوق flex: display: flex; align-items: center; (وأضف justify-content: center للتوسيط أفقيًا أيضًا). ولسطر واحد داخل صندوق ثابت الارتفاع، يعمل أيضًا ضبط line-height مساويًا للارتفاع.

هل ما زال وسم <center> صالحًا؟

لا. <center> والسمة align="center" مهجوران. ما زالت المتصفحات تعرضهما للصفحات القديمة، لكن الشيفرة الجديدة يجب أن تستخدم text-align: center في CSS.

كيف أزيح النص في HTML؟

استخدم CSS. text-indent: 2em يزيح السطر الأول من الفقرة، وpadding-inline-start: 2em أو margin-inline-start: 2em يزيح الكتلة كلها. المسافات أو &nbsp; داخل النص ليست إزاحة موثوقة.

Coddy programming languages illustration

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

ابدأ الآن