كيف توسّط النص في 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. - توسيط الفقرات الطويلة. وسّط العناوين والأسطر القصيرة، وأبقِ نص المحتوى محاذيًا إلى البداية.
- الإزاحة بـ
أو بالمسافات. استخدم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 يزيح الكتلة كلها. المسافات أو داخل النص ليست إزاحة موثوقة.