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

ارتفاع السطر line-height في CSS: قيم بلا وحدة وpx وem

تضبط line-height ارتفاع كل سطر من النص، وبالتالي المسافة بين الأسطر. تعلّم لماذا الرقم بلا وحدة هو الخيار الافتراضي الصحيح، وكيف تُورَّث قيم px وem و% بشكل مختلف، والقيم الجيدة لنص الجسم والعناوين.

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

ماذا تفعل line-height

تضبط line-height ارتفاع كل سطر من النص. الفرق بين ذلك الارتفاع والارتفاع الذي يحتاجه الخط نفسه يُقسم نصفين ويُضاف فوق الحروف وتحتها، وهكذا تتحكم في المسافة بين الأسطر.

الفقرات الثلاث تستخدم خطًا بحجم 16px. ارتفاع الأسطر 16px و24px و32px.

القيم: بلا وحدة، طول، نسبة مئوية، normal

القيمةمثالارتفاع السطر لنص بحجم 16pxيرثها الأبناء على شكل
رقم1.524pxالرقم نفسه (1.5)، يُعاد حسابه لكل عنصر
طول24px، 1.5em، 1.5rem24pxالطول المحسوب (24px)
نسبة مئوية150%24pxالطول المحسوب (24px)
normalnormalمن الخط، غالبًا نحو 1.2normal

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

لماذا القيمة بلا وحدة هي الخيار الافتراضي الصحيح

ارتفاع السطر 1.5em أو 150% يتحول إلى بكسلات على الأب، ويرث الأبناء تلك البكسلات. فيحصل الابن ذو الخط الأكبر على أسطر أقصر من حروفه. أما القيمة بلا وحدة 1.5 فتُورَّث كرقم وتُضرب في حجم خط كل ابن.

العنوانان كلاهما يلتف على سطرين. الأول يرث أسطرًا بارتفاع 21px لحروف بحجم 32px، فتتداخل أسطره. والثاني يحصل على أسطر بارتفاع 32 × 1.5 = 48px. اضبط line-height مرة واحدة على body كرقم، ولن تحتاج إليها معظم الصفحات مرة أخرى.

جرّب القيم بنفسك

جرّب 1 و2 و30px و200% وnormal. يعرض Chrome القيمة normal ككلمة لا كقيمة بالبكسل، لأن حجمها يأتي من الخط.

قيم جيدة لنص مريح للقراءة

  • نص الجسم: من 1.4 إلى 1.6. الأسطر الأطول تحتاج إلى ارتفاع سطر أكبر كي تجد العين بداية السطر التالي.
  • العناوين: من 1.1 إلى 1.3. النص الكبير بتباعد 1.5 يبدو كأسطر منفصلة لا كعنوان واحد.
  • الأزرار والتسميات ذات السطر الواحد: من 1 إلى 1.25، مع حشو للارتفاع.

لسهولة الوصول، يشترط معيار النجاح 1.4.12 في WCAG أن تبقى الصفحة صالحة حين يضبط القارئ ارتفاع السطر على 1.5 ضعف حجم الخط، لذلك تجنب الارتفاعات الثابتة على صناديق النص التي قد تقصّه.

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

حين يحتوي الصندوق على سطر واحد بالضبط، فإن line-height مساوية لارتفاع الصندوق تضع النص في منتصفه العمودي، لأن المسافة الإضافية تُقسم بالتساوي فوقه وتحته:

تنكسر هذه الطريقة بمجرد أن يلتف النص على سطرين، لأن ارتفاع كل سطر يصبح عندها 40px. لأي شيء قد يلتف، وسّط باستخدام flexbox بدلًا من ذلك، كما في صفحة توسيط div.

الاختصار font

يضبط الاختصار font الحجم وارتفاع السطر معًا بشرطة مائلة:

body {
  font: 16px/1.5 system-ui, sans-serif; /* size 16px, line-height 1.5 */
}

يعيد الاختصار ضبط كل خاصية خط لا يذكرها (بما فيها line-height إلى normal حين تحذف الجزء الذي بعد الشرطة المائلة)، لذلك اكتبه قبل أي قواعد font-* مفردة.

أخطاء شائعة

  • استخدام em أو % على حاوية. يرث الأبناء طولًا ثابتًا. استخدم رقمًا بلا وحدة.
  • height ثابت على صندوق نص. حين يلتف النص أو يكبّر القارئ التباعد، يفيض. دع المحتوى يحدد الارتفاع.
  • نص جسم متراص جدًا. line-height: 1 تجعل الفقرات صعبة القراءة. ابدأ من 1.5.
  • توقع أن تضيف line-height مسافة بين الفقرات. هذا دور margin على الفقرات.
  • الاعتماد على normal. تتغير من خط لآخر، فيتحرك التخطيط حين يتغير الخط.

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

ماذا تفعل line-height في CSS؟

تضبط ارتفاع كل صندوق سطر في النص. المسافة الإضافية التي تتجاوز ارتفاع الخط نفسه تُقسم بالتساوي فوق الحروف وتحتها، لذلك تعني line-height الأكبر مسافة أكبر بين الأسطر.

هل يجب أن تكون لـ line-height وحدة؟

عادةً لا. القيمة بلا وحدة مثل 1.5 تُضرب في حجم خط كل عنصر، فتبقى متناسبة في الأبناء ذوي الأحجام المختلفة. أما القيمة ذات الوحدة فتُحسب مرة واحدة وتُورَّث كطول ثابت.

ما قيمة line-height الجيدة لنص الجسم؟

بين 1.4 و1.6 للفقرات، ونحو 1.1 إلى 1.3 للعناوين الكبيرة. توصيات WCAG من المستوى AAA تطلب 1.5 على الأقل في الفقرات.

ما هي line-height: normal؟

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

كيف أغيّر تباعد الأسطر في HTML؟

لا توجد في HTML سمة لتباعد الأسطر. استخدم خاصية CSS، مثلًا <p style="line-height: 2;"> لتباعد مزدوج.

Coddy programming languages illustration

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

ابدأ الآن