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

بودكاست CSS - 008: وحدات القياس

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

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

الأرقام

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

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

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

في هذا المثال، يساوي 1.5 150% من حجم خط البكسل المحتسب للعنصر p. وهذا يعني أنّه إذا كانت قيمة font-size للسمة p هي 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 لتحديد حجم العنصر ثم الطباعة، يجب أن تكون القيمة دقيقة عند مقارنته بمسطرة.

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

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

الوحدة الاسم تعادل
سم سنتيمتر 1 سم = 96 بكسل/2.54
مم ملليمتر 1 ملم = 1/10 من 1 سم
س ربع مليمتر 1Q = 1/40 من 1 سم
بوصة بوصة 1 بوصة = 2.54 سم = 96 بكسل
pc بيكاس 1PC = 1/6 من 1 بوصة
نقطة النقاط 1pt = 1/72 من 1 بوصة
بكسل وحدات بكسل 1 بكسل = 1/96 من 1 بوصة

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

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

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

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

الوحدة مقارنةً بـ:
em بالنسبة إلى حجم الخط، بمعنى آخر، سيكون حجم 1.5 em أكبر بنسبة 50% من حجم الخط الأساسي الذي تم احتسابه للخط الرئيسي. (تاريخيًا، كان ارتفاع الحرف الكبير "M").
مثال: إرشادي لتحديد ما إذا كان يجب استخدام قيمة الارتفاع x أو الحرف "x" أو " .5em" في حجم الخط المَحسوب الحالي للعنصر.
كاب ارتفاع الأحرف الكبيرة في حجم الخط المَحسوب الحالي للعنصر.
ch متوسط التقدم بالحرف في حرف رسومي ضيق في خط العنصر (يمثّله الحرف الرسومي "0").
ic متوسط التقدم بالحرف لحرف رسومي كامل العرض في خط العنصر، كما يتم تمثيله بالحرف الرسومي "水" (الحرف الرسومي للماء CJK، U+6C34).
ريم حجم خط العنصر الجذر (القيمة التلقائية هي 16 بكسل).
lh ارتفاع سطر العنصر.
rlh ارتفاع سطر العنصر الجذر
النص، CSS رائع بـ 10 مرات مع تصنيفات لارتفاع الصاعد وارتفاع الجزء السفلى وx-الارتفاع. يمثل الارتفاع x-1ex، والرقم 0 يمثل 1ch.

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

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

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

p {
  max-width: 60ch;
}

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

وحدات متنوعة

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

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

في وحدة الألوان، نظرنا إلى وحدات الزوايا التي تفيد في تحديد قيم الدرجات، مثل تدرج اللون في 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 في استعلام عن الوسائط وعرض صورة عالية الدقة.

التحقّق من استيعابك

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

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

سم
سنتيمتر، عبارة عن بُعد مطلق صالح.
ui
واجهة المستخدم ليست سمة في CSS.
في
البوصة، سمة مطلقة صالحة.
الثامن
ليست إحدى سمات CSS
بكسل
وحدات بكسل، سمة مطلقة صالحة.
ch
وحدات الأحرف، سمة نسبية صالحة.
ux
إنّ تجربة المستخدم ليست سمة في خدمة مقارنة الأسعار.
em
وحدات الحرف "M" هي بُعد نسبي صالح.
مثال
وحدات الحرف "x"؛ بُعد نسبي صالح.

كيف تختلف الوحدات المطلقة عن الوحدات النسبية؟

لا يمكن أن تتغير القيم المطلقة ولكن يمكن أن تتغير الوحدات النسبية.
يمكن أن تتغير القيم المطلقة، ولكن القاعدة التي يتم الحساب بناءً عليها لا يمكن أن تتغير.
يتمّ احتساب الطول المطلق مقابل قيمة أساسية مشترَكة واحدة، حيث تتمّ مقارنة الوحدة النسبية بقيمة أساسية يمكن أن تتغيّر.
تكون الوحدات النسبية أكثر تكيّفًا وانسيابيًا بسبب وعيها السياقي، ولكن هناك قوة وإمكانية التنبؤ بالوحدات المطلقة التي يمكن أن تكون أساسية لبعض التصميمات.

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

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

المراجِع