الخاصية line-height

من موسوعة حسوب
< CSS
مراجعة 10:27، 29 أكتوبر 2017 بواسطة عبد اللطيف ايمش (نقاش | مساهمات)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

الخاصية line-height في CSS تضبط المسافة المستخدم للأسطر، كما في النصوص؛ أما على العناصر الكتلية (block elements) فهي تُحدِّد الارتفاع الأدنى للصناديق النصية (line boxes) ضمن العنصر.

/* كلمة محجوزة */
line-height: normal;

/* أعداد دون واحدة، ستضرَب بقيمة حجم الخط للعنصر */
line-height: 3.5;

/* <length> أطوال مطلقة */
line-height: 3em;

/* <percentage> نسب مئوية */
line-height: 34%;

/* القيم العامة */
line-height: inherit;
line-height: initial;
line-height: unset;
القيمة الابتدائية normal
تُطبَّق على جميع العناصر.
قابلة للوراثة نعم
قابلة للتحريك نعم
القيمة المحسوبة كما حُدِّدت، ما عدا القيم النسبية التي ستحوّل إلى أطوال مطلقة.

أمثلة

مثال عن استخدام الخاصية line-height مع مختلف أنواع القيم، لاحظ أنَّ جميع القواعد الآتية ستؤدي إلى ضبط ارتفاع السطر إلى القيمة نفسها:

div { line-height: 1.2;   font-size: 10pt; }
div { line-height: 1.2em; font-size: 10pt; }
div { line-height: 120%;  font-size: 10pt; }
div { font: 10pt/1.2  Georgia,serif; }

من المستحسن ضبط قيمة line-height باستخدام الخاصية المختصرة font كما هو موضَّح أعلاه، لكن فعل ذلك سيتطلب منا ضبط قيمة الخاصية font-family أيضًا.

استخدام القيم الرقمية دون واحدات

المثال الآتي يبيّن لماذا من الأفضل استخدام القيم الرقمية <number> بدلًا من الأطوال <length>، إذ سنستخدم عنصرَي <div>، الأول له إطار أخضر ويستخدم قيمة رقمية دون واحدة، والثاني له إطار أحمر ويستخدم قيمة طولية مع الواحدة em:

<div class="box green">
    <h1>تجنب النتائج غير المتوقعة باستخدام قيم عددية دون واحدات مع الخاصية line-heigth</h1>
  إذ إنَّ وراثة القيم الطولية والنسب المئوية ستؤدي إلى سلوك غير متوقع.
</div>

<div class="box red">
    <h1>تجنب النتائج غير المتوقعة باستخدام قيم عددية دون واحدات مع الخاصية line-heigth</h1>
  إذ إنَّ وراثة القيم الطولية والنسب المئوية ستؤدي إلى سلوك غير متوقع.
</div>

شيفرة CSS:

.green {
  line-height: 1.1;
  border: solid limegreen;
}

.red {
  line-height: 1.1em;
  border: solid red;
}

h1 {
  font-size: 30px;
}

.box {
  width: 18em;
  display: inline-block;
  vertical-align: top;
  font-size: 15px;
}

لاحظ أنَّ قيمة الخاصية line-height للعنصر <h1> الأول محسوبة نسبةً إلى حجم الخط للعنصر نفسه (أي 30px × 1.1 = 33px)، بينما قيمة الخاصية line-height لعنصر <h1> الثاني محسوبة نسبةً إلى حجم الخط للعنصر <div> الأب (أي 15px × 1.1 = 16.5px) وهذه القيمة غير ملائم إطلاقًا.

دعم المتصفحات

الميزة Chrome Firefox Internet Explorer Opera Safari
الدعم الأساسي 1.0 1.0 4 7 1.0

البنية العامة

تقبل الخاصية line-height قيمةً من القيم التالية.

القيمة normal

تختلف القيمة بين المتصفحات، إذ تستعمل متصفحات سطح المكتب القيمة 1.2 تقريبًا، وتختلف اعتمادًا على نوع الخط font-family المستخدم على العنصر.

القيمة <number>

القيمة المستخدمة هي الرقم المضبوط مضروبًا بحجم الخط المستخدم على العنصر نفسه، وهذه هي الطريقة المُفضَّلة في أغلبية الحالات لضبط الخاصية line-height لتجنب النتائج غير المتوقعة الناجمة عن وراثة القيم.

القيمة <length>

القيمة الطولية <length> ستُستخدَم لحساب ارتفاع السطر.

القيمة <percentage>

هذه القيمة تكون نسبةً إلى حجم الخط المستخدم على العنصر نفسه.

لاحظ أنَّ النسب المئوية والأطوال ذات الواحدة em قد تؤدي إلى نتائج غير متوقعة (انظر الأمثلة).

البنية الرسمية

line-height: normal | <number> | <length> | <percentage>;

مصادر ومواصفات