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
لتحديد حجم العنصر ثم طباعته،
يجب أن يكون دقيقًا إذا قارنته بمسطرة.
div {
width: 10cm;
height: 5cm;
background: black;
}
إذا طبعت هذه الصفحة، سيتم طباعة الرمز div
على شكل مستطيل أسود أبعاده 10×5 سم.
يُرجى العِلم أنّه لا يتم استخدام CSS للمحتوى الرقمي فقط، بل أيضًا لتنسيق المحتوى المخصّص للطباعة.
يمكن أن تكون الأطوال المطلقة مفيدة حقًا عند التصميم للطباعة.
الأطوال النسبية
يتم احتساب الطول النسبي مقارنةً بقيمة أساسية، تمامًا مثل النسبة المئوية.
يكمن الفرق بين هذه النسب المئوية والنسب المئوية في إمكانية تغيير حجم العناصر من خلال السياق.
وهذا يعني أن CSS بها وحدات مثل ch
تستخدم حجم النص كأساس،
وvw
التي تستند إلى عرض إطار العرض (نافذة المتصفّح).
تكون الطول النسبي مفيدًا بشكل خاص على الويب بسبب طبيعته السريعة الاستجابة.
الوحدات النسبية لحجم الخط
توفر CSS وحدات مفيدة تتناسب مع حجم عناصر أسلوب الخط المعروض،
مثل حجم النص نفسه (em
وحدة) أو عرض الخطوط الطباعية (ch
وحدة).
الوحدة | بالنسبة إلى: |
---|---|
em | بالنسبة إلى حجم الخط، سيكون 1.5em أكبر بنسبة %50 من حجم الخط الأساسي المحسوب للعنصر الرئيسي. (كان هذا الارتفاع في السابق يساوي ارتفاع الحرف الكبير "م"). |
ex | منهج استقرائي لتحديد ما إذا كان سيتم استخدام ارتفاع الحرف x أو الحرف x أو .5em في حجم الخط المحسوب الحالي للعنصر. |
cap | ارتفاع الأحرف الكبيرة في حجم الخط المحسوب الحالي للعنصر |
ch | متوسط تقدم الأحرف لحرف رسومي ضيق في خط العنصر (يمثلها الحرف الرسومي "0"). |
ic | متوسطة تقديم حرف لحرف رسومي بالعرض الكامل في خط العنصر، كما هو موضح في "水" حرف رسومي (CJK مائي، U+6C34) |
rem | حجم الخط للعنصر الجذر (القيمة التلقائية هي 16 بكسل). |
lh | ارتفاع سطر العنصر. |
rlh | ارتفاع سطر العنصر الجذر. |
الوحدات النسبية لإطار العرض
يمكنك استخدام سمات إطار العرض (نافذة المتصفّح) كأساس نسبي. وتقسّم هذه الوحدات مساحة إطار العرض المتاحة.
الوحدة | نسبةً إلى |
---|---|
vw | 1% من عرض إطار العرض يستعين المستخدمون بهذه الوحدة لرسم خطوط رائعة، مثل تغيير حجم خط العنوان بناءً على عرض الصفحة بحيث يقوم المستخدم بتغيير الحجم، سيتم تغيير حجم الخط أيضًا. |
vh | 1% من ارتفاع إطار العرض يمكنك استخدام هذا الإجراء لترتيب العناصر في واجهة مستخدم، إذا كان لديك شريط أدوات تذييل مثلاً. |
vi | 1% من حجم إطار العرض في المحور المضمّن في العنصر الجذر. يشير Axis إلى أوضاع الكتابة. في أوضاع الكتابة الأفقية مثل اللغة الإنجليزية، يكون المحور المضمَّن أفقيًا. في أوضاع الكتابة العمودية، مثل بعض الخطوط اليابانية، يتم عرض المحور المضمّن من الأعلى إلى الأسفل. |
vb | 1% من حجم إطار العرض في محور حظر العنصر الجذر. بالنسبة لمحور الكتلة، سيكون هذا هو اتجاه اللغة. للغات LTR مثل الإنجليزية محور كتلة عمودي، لأنّ قرّاء اللغة الإنجليزية يحللون الصفحة من أعلى إلى أسفل وضع الكتابة العمودي له محور كتلة أفقي. |
قائمة تشغيل الجهازين | 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 في استعلام عن الوسائط وتعرض صورة بدقة أعلى.
التحقّق من فهمك
اختبِر معلوماتك حول تحديد المقاس
أي مما يلي يُعد بُعدًا صالحًا؟
ما الفرق بين الوحدات المطلقة والوحدات النسبية؟
وحدات إطار العرض مطلقة.