وحدات المقاسات

The CSS Podcast - 008: Sizing Units

الويب هو وسيط متجاوب، ولكن في بعض الأحيان قد تحتاج إلى التحكّم في أبعاده لتحسين جودة الواجهة بشكل عام. ومن الأمثلة الجيدة على ذلك الحد من طول السطور لتحسين إمكانية القراءة. كيف يمكنك إجراء ذلك في وسيط مرن مثل الويب؟

في هذه الحالة، يمكنك استخدام وحدة ch، وهي تساوي عرض الحرف "0" في الخط المعروض بالحجم المحسوب. تتيح لك هذه الوحدة الحد من عرض النص باستخدام وحدة مصمّمة لتحديد حجم النص، ما يتيح بدوره التحكّم بشكل متوقّع بغض النظر عن حجم هذا النص. وحدة ch هي واحدة من عدد قليل من الوحدات المفيدة في سياقات معيّنة، مثل هذا المثال.

Numbers

تُستخدَم الأرقام لتحديد opacity وline-height وحتى لقيم قنوات الألوان في rgb. الأرقام هي أعداد صحيحة بدون وحدات (1 و2 و3 و100) وأرقام عشرية (0.1 و0.2 و0.3).

تختلف دلالة الأرقام حسب السياق. على سبيل المثال، عند تحديد line-height، يمثّل الرقم نسبة إذا حدّدته بدون وحدة داعمة:

p {
  font-size: 24px;
  line-height: 1.5;
}

في هذا المثال، تساوي القيمة 1.5 ‎150% من حجم الخط المحسوب بالبكسل للعنصر p. وهذا يعني أنّه إذا كان p يحتوي على font-size‏ = 24px، سيتم احتساب ارتفاع السطر على أنّه 36px.

يمكن أيضًا استخدام الأرقام في المواضع التالية:

  • عند ضبط قيم الفلاتر: تُطبِّق filter: sepia(0.5) فلتر 50% بدرجات اللون البني على العنصر.
  • عند ضبط مستوى التعتيم: يطبّق opacity: 0.5 مستوى التعتيم 50%.
  • في قنوات الألوان: rgb(50, 50, 50)، حيث تكون القيم من 0 إلى 255 مقبولة لضبط قيمة اللون. الاطّلاع على درس الألوان
  • لتحويل عنصر: transform: scale(1.2) يكبِّر العنصر بنسبة% 120 من حجمه الأولي.

النِسب المئوية

عند استخدام نسبة مئوية في CSS، عليك معرفة كيفية احتسابها. على سبيل المثال، يتم احتسابwidth كنسبة مئوية من العرض المتاح في العنصر الرئيسي.

div {
  width: 300px;
  height: 100px;
}

div p {
  width: 50%;
}

في المثال السابق، يكون عرض div p هو 150px، بافتراض أنّ التنسيق يستخدم box-sizing: content-box التلقائي.

إذا ضبطت margin أو padding كنسبة مئوية، سيكونان جزءًا من عرض العنصر الرئيسي، بغض النظر عن الاتجاه.

div {
  width: 300px;
  height: 100px;
}

div p {
  margin-top: 50%; /* calculated: 150px */
  padding-left: 50%; /* calculated: 150px */
}

في المثال السابق، سيتم احتساب كل من margin-top وpadding-left على أنّهما 150px.

div {
  width: 300px;
  height: 100px;
}

div p {
  width: 50%; /* calculated: 150px */
  transform: translateX(10%); /* calculated: 15px */
}

إذا ضبطت قيمة transform كنسبة مئوية، ستستند إلى العنصر الذي تم ضبط التحويل عليه. في هذا المثال، يكون للعنصر p قيمة translateX‏ = 10% وقيمة width‏ = 50%. أولاً، احتسِب العرض: 150px لأنّه ‎50% من عرض العنصر الرئيسي. بعد ذلك، اطرح 10% من 150px، أي 15px.

الأبعاد والأطوال

في حال إرفاق وحدة برقم، تصبح سمة. على سبيل المثال، 1rem هي سمة. في هذا السياق، يُشار إلى الوحدة المرتبطة برقم في المواصفات باسم رمز سمة. الأطوال هي سمات تشير إلى المسافة ويمكن أن تكون مطلقة أو نسبية.

الأطوال المطلقة

يتم تحليل جميع الأطوال المطلقة بالاستناد إلى القاعدة نفسها، ما يجعلها متوقّعة أينما تم استخدامها في CSS. على سبيل المثال، إذا كنت تستخدم cm لتحديد حجم العنصر ثم الطباعة، من المفترض أن تكون النتيجة دقيقة إذا قارنتها بمسطرة. يُرجى العِلم أنّ الوحدات المادية، مثل cm وin، لن يتم عرضها بشكل موثوق بهذه الأحجام على الشاشات بسبب اختلافات في أحجام البكسل. من الأفضل استخدام الوحدات المادية في أوراق أنماط الطباعة حيث تكون أكثر موثوقية.

div {
  width: 10cm;
  height: 5cm;
  background: black;
}

إذا طبعت هذه الصفحة، سيتم طباعة الرمز div على شكل مستطيل أسود أبعاده 10×5 سم. يُرجى العِلم أنّه لا يتم استخدام CSS للمحتوى الرقمي فقط، بل أيضًا لتنسيق المحتوى المخصّص للطباعة. يمكن أن تكون الأطوال المطلقة مفيدة جدًا عند التصميم للطباعة.

الوحدة الاسم مكافئ
cm سنتيمتر 1 سم = 96 بكسل/2.54
ملم مليمتر 1 مم = 1/10 من 1 سم
س ربع مليمتر ‫1Q = 1/40 من 1 سم
in (بوصة) بوصة 1 بوصة = 2.54 سم = 96 بكسل
pc Picas 1 قطعة = 1/6 من البوصة
pt النقاط ‫1 نقطة = 1/72 من البوصة
px وحدات بكسل ‫1 بكسل = 1/96 من البوصة

الأطوال النسبية

يتم احتساب الطول النسبي مقارنةً بقيمة أساسية، تمامًا مثل النسبة المئوية. الفرق بين هذه القيم والنسب المئوية هو أنّه يمكنك تحديد الأحجام استنادًا إلى حجم أساسي ذي صلة، مثل حجم الخط التلقائي أو سمات النافذة. وهذا يعني أنّ CSS تتضمّن وحدات مثل ch التي تستخدِم مقاييس حجم الخط كأساس، وvw التي تستند إلى عرض إطار العرض (창) في المتصفّح. تكون الطول النسبي مفيدة بشكل خاص على الويب بسبب طبيعته السريعة الاستجابة.

الوحدات النسبية لحجم الخط

يوفّر CSS وحدات مفيدة تكون نسبية لحجم عناصر الطباعة المعروضة، مثل حجم النص نفسه (وحدات em) أو عرض أحرف الخطوط (وحدات ch).

الوحدة نسبةً إلى:
em بالنسبة إلى حجم الخط، سيكون 1.5em أكبر بنسبة% 50 من حجم الخط الأساسي المحسوب للعنصر الرئيسي. (كان هذا الارتفاع في السابق يساوي ارتفاع الحرف اللاتيني الكبير "M").
rem حجم الخط للعنصر الجذر (القيمة التلقائية هي 16px).
ex منهج استقرائي لتحديد ما إذا كان سيتم استخدام ارتفاع الحرف "x" أو الحرف "x" أو .5em في حجم الخط المحسوب الحالي للعنصر
rex قيمة ex للعنصر الجذر
cap ارتفاع الأحرف الكبيرة في حجم الخط المحسوب الحالي للعنصر
rcap قيمة cap للعنصر الجذر
ch متوسّط موضع الحرف لرمز رسومي ضيّق في خط العنصر (يتم تمثيله بالرمز الرسومي "0").
rch قيمة ch للعنصر الجذر
ic متوسّط موضع الحرف لرمز بعرض كامل في خط العنصر، كما هو ممثّل بالرمز "水" (رمز الماء بترميز CJK، U+6C34).
ric قيمة ic للعنصر الجذر
lh ارتفاع سطر العنصر
rlh قيمة السطر lh للعنصر الجذر

النص، CSS رائع 10 مرات مع تصنيفات لارتفاع الأحرف الصاعدة والهابطة وارتفاع الحرف x. يمثّل ارتفاع الحرف x 1ex ويمثّل 0 1ch.

الوحدات النسبية لإطار العرض

يمكنك استخدام سمات إطار العرض (نافذة المتصفّح) كأساس نسبي. وتقسّم هذه الوحدات مساحة إطار العرض المتاحة.

الوحدة نسبةً إلى
vw %1 من عرض إطار العرض يستخدم المستخدمون هذه الوحدة لتنفيذ حيل رائعة في الخط، مثل تغيير حجم خط العنوان استنادًا إلى عرض الصفحة، لكي يتم تغيير حجم الخط أيضًا عندما يغيّره المستخدم.
vh ‫1% من ارتفاع إطار العرض يمكنك استخدام هذه الطريقة لترتيب العناصر في واجهة مستخدم، مثلاً إذا كان لديك شريط أدوات تذييل.
vi %1 من حجم إطار العرض في محور مضمّن العنصر الجذر يشير Axis إلى أوضاع الكتابة. في أوضاع الكتابة الأفقية، مثل الإنجليزية، يكون المحور المضمّن أفقيًا. في أوضاع الكتابة العمودية، مثل بعض الخطوط اليابانية، يتم عرض المحور المضمّن من أعلى إلى أسفل.
vb %1 من حجم إطار العرض في محور البلوك للعنصر الجذر بالنسبة إلى محور المجموعة، سيكون هذا هو اتجاه اللغة. تحتوي اللغات مثل الإنجليزية على محور كتل عمودي، لأنّ قراء اللغة الإنجليزية يحلّلون الصفحة من الأعلى إلى الأسفل. يحتوي وضع الكتابة العمودي على محور كتل أفقي.
vmin ‫1% من أصغر سمة لإطار العرض
vmax ‫1% من البُعد الأكبر لإطار العرض
div {
  width: 10vw;
}

p {
  max-width: 60ch;
}

في هذا المثال، سيكون div ‏10% من عرض إطار العرض لأنّ 1vw1% من عرض إطار العرض. يحتوي العنصر p على max-width60ch ، ما يعني أنّه لا يمكن أن يتجاوز عرضه 60 حرفًا "0" بالخط والحجم المحسوبَين.

وحدات بديلة نسبية لإطار العرض

تظلّ قيمة الوحدات النسبية لإطار العرض كما هي ما دام حجم إطار العرض لم يتغيّر. ومع ذلك، تعرِض متصفّحات الأجهزة الجوّالة عادةً عناصر واجهة المستخدم أو تخفيها لعرض أكبر قدر ممكن من المحتوى على الشاشات الصغيرة، بدون تغيير الحجم المحسوب لإطار العرض. يمكنك استخدام بدائل للوحدات النسبية لمساحة العرض من أجل مراعاة هذه التغييرات في المنطقة المرئية.

وحدة مكافئ
lvw وlvh وlvi وlvb وlvmin وlvmax وحدات إطار عرض كبيرة، مقارنةً بالمساحة المرئية لإطار العرض مع إخفاء جميع عناصر واجهة المستخدم الاختيارية للمتصفّح تساوي الوحدات غير المتغيرة ذات الصلة بإطار العرض. لا يتغيّر ما دام حجم إطار العرض ثابتًا.
svw وsvh وsvi وsvb وsvmin وsvmax وحدات إطار عرض صغيرة، نسبةً إلى المساحة المرئية لإطار العرض مع ظهور جميع عناصر واجهة مستخدِم المتصفّح الاختيارية لا يتغيّر ما دام حجم إطار العرض ثابتًا.
dvw وdvh وdvi وdvb وdvmin وdvmax وحدات إطار العرض الديناميكية، نسبةً إلى المساحة المرئية الحالية لإطار العرض التغييرات التي تطرأ عند عرض عناصر واجهة مستخدِم المتصفّح أو إخفائها

الوحدات النسبية للحاوية

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

وحدة نسبةً إلى
cqw ‫1% من عرض الحاوية
cqh %1 من ارتفاع الحاوية
cqi ‫1% من حجم الحاوية المضمّنة
cqb %1 من حجم الوحدات في الحاوية
cqmin ‫1% من أصغر أبعاد الحاوية
cqmax ‫1% من السمة الأكبر للحاوية

الوحدات المتنوعة

هناك بعض الوحدات الأخرى التي تم تحديدها للتعامل مع أنواع معيّنة من القيم.

وحدات الزاوية

في وحدة الألوان، نطّلِع على وحدات الزاوية، التي تكون مفيدة لتحديد قيم الدرجات، مثل درجة اللون في hsl. وهي مفيدة أيضًا لتدوير العناصر ضمن دوال التحويل.

div {
  width: 150px;
  height: 150px;
  transform: rotate(60deg);
}

باستخدام وحدة الزاوية deg، يمكنك تدوير div بزاوية 90 درجة على محور مركزه.

div {
  background-image: url('a-low-resolution-image.jpg');
}

@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
  div {
    background-image: url('a-high-resolution-image.jpg');
  }
}

وحدات الدقة

في المثال السابق، قيمة min-resolution هي 192dpi. تشير وحدة dpi إلى النقاط لكل بوصة. ومن السياقات المفيدة لهذا الإجراء رصد الشاشات العالية الدقة للغاية، مثل شاشات Retina في طلب الوسائط وعرض صورة بدرجة دقة أعلى.

التحقّق من فهمك

اختبِر معلوماتك حول المقاسات

أيّ مما يلي سمات صالحة؟

ch
ux
ex
سم
الثامن
بكسل
في
em
ui

ما هو الفرق بين الوحدات المطلقة والنسبية؟

لا يمكن تغيير القيم المطلقة، ولكن يمكن تغيير الوحدات النسبية.
يتم احتساب الطول المطلق مقارنةً بقيمة أساسية مشترَكة واحدة، حيث تتم مقارنة وحدة نسبية بقيمة أساسية يمكن أن تتغيّر.

تكون وحدات إطار العرض مطلقة.

خطأ
True

الموارد