יחידות מידה

האינטרנט הוא אמצעי הגעה לאתר, אבל לפעמים רוצים לשלוט במידות שלו כדי לשפר את האיכות הכוללת של הממשק. דוגמה טובה לכך היא הגבלת אורכי השורות כדי לשפר את הקריאוּת. איך היית עושה זאת באמצעי תקשורת גמיש כמו האינטרנט?

במקרה כזה, אפשר להשתמש ביחידת ch, ששווה לרוחב של התו '0' בגופן שעבר רינדור בגודל המחושב שלו. יחידה זו מאפשרת להגביל את רוחב הטקסט באמצעות יחידה שתוכננה לגודל טקסט. שבתורו, מאפשרת שליטה צפויה בלי קשר לגודל הטקסט. היחידות מסוג ch הן אחת מתוך כמה יחידות שמועילות בהקשרים ספציפיים, כמו בדוגמה הזו.

iWork Numbers

מספרים משמשים להגדרת 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. כלומר, אם ל-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 יודפס כמלבן שחור בגודל 10x5 ס"מ. חשוב לזכור ש-CSS משמש לא רק לתוכן דיגיטלי, אלא גם לסגנון של תוכן מודפס. אורכים מוחלטים יכולים להיות שימושיים מאוד כשמתכננים להדפסה.

יחידה שם שווה ערך ל-
ס"מ סנטימטרים 1cm = 96px/2.54
mm מילימטרים 1 מ"מ = 1/10 ס"מ
Q רבע מילימטרים 1Q = 1/40th of 1cm
in אינצ'ים 1in = 2.54cm = 96px
pc פיקאס 1pc = 1/6 מתוך 1
pt נקודות 1pt = 1/72 מתוך 1in
px פיקסלים 1px = 1/96 מתוך 1in

אורכים יחסיים

אורך יחסי מחושב לפי ערך בסיס, בדומה לאחוז. ההבדל בין הערכים האלה לבין אחוזים הוא שאפשר לשנות את הגודל של רכיבים בהתאם להקשר. המשמעות היא של-CSS יש יחידות כמו ch שמשתמשות בגודל הטקסט כבסיס, ו-vw שמבוסס על רוחב אזור התצוגה (חלון הדפדפן). אורך יחסי שימושי במיוחד באינטרנט בגלל האופי הרספונסיבי שלו.

יחידות יחסיות של גודל גופן

ב-CSS יש יחידות מועילות שיחסיות לגודל הרכיבים של הגופן שעבר רינדור, כמו גודל הטקסט עצמו (יחידות em) או רוחב התווים של גופנים (יחידות ch).

יחידה ביחס ל:
em ביחס לגודל הגופן, כלומר 1.5em יהיה גדול ב-50% מגודל הגופן המחושב הבסיסי של האב שלו. (בעבר, הגובה של האות הגדולה 'M').
לדוגמה היוריסטיקה כדי לקבוע אם להשתמש בגובה ה-x, אות 'x' או '.5em' בגודל הגופן המחושב הנוכחי של הרכיב.
cap גובה האותיות רישיות בגודל הגופן המחושב הנוכחי של הרכיב.
ch ההתקדמות הממוצעת של התו של גליף צר בגופן של האלמנט (המיוצג על ידי הגליף '0').
ic ההתקדמות הממוצעת של התו של גליף ברוחב מלא בגופן של הרכיב, כפי שהוא מיוצג על ידי הגליף 水 (סמל מים ב-CJK, U+6C34).
rem גודל הגופן של רכיב הבסיס (ברירת המחדל היא 16px).
ח גובה השורה של הרכיב.
rlh גובה השורה של רכיב הבסיס.
הטקסט, ה-CSS מצוין פי 10 עם תוויות לגובה האותיות האנכיות, לגובה האותיות הנמוכות ולגובה ה-x. הגובה x מייצג את הערך 1ex וה-0 מייצג את הערך 1ch

יחידות יחסיות של נקודת מבט

אפשר להשתמש במימדים של אזור התצוגה (חלון הדפדפן) בתור בסיס יחסי. היחידות האלה מהוות את השטח הזמין של אזור התצוגה.

יחידה ביחס ל-
vw 1% מרוחב אזור התצוגה. אנשים משתמשים ביחידה הזו כדי לעשות טריקים מגניבים של גופנים כמו שינוי הגודל של גופן הכותרת בהתאם לרוחב הדף כך שגודל המשתמש משתנה גם גודל הגופן ישתנה.
vh 1% מגובה אזור התצוגה. אפשר להשתמש בזה כדי לסדר פריטים בממשק המשתמש, למשל אם יש לכם סרגל כלים בכותרת התחתונה.
vi 1% מגודל אזור התצוגה בציר inline של רכיב הבסיס. ציר מתייחס למצבי כתיבה. במצבי כתיבה אופקית כמו אנגלית, הציר המוטבע הוא אופקי. במצבי כתיבה אנכית, כמו גופנים ביפנית, הציר המוטבע רץ מלמעלה למטה.
vb 1% מגודל אזור התצוגה בציר הבלוק של רכיב הבסיס. בצייר, זהו כיוון השפה. בשפות שכתוב בהן משמאל לימין, כמו אנגלית, יש ציר אנכי של בלוקים, כי קוראי אנגלית מנתחים את הדף מלמעלה למטה. במצב כתיבה אנכי יש ציר של בלוקים אופקיים.
vmin 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 בשאילתת מדיה והצגת תמונה ברזולוציה גבוהה יותר.

בדיקת ההבנה

בדיקת הידע שלכם בנושאי התאמה

אילו מהמאפיינים הבאים הם מאפיינים תקינים?

בתוך
ch
ס"מ
Ux
ui
ex
8
px
em

מה ההבדל בין יחידות מוחלטות לבין יחידות יחסיות?

אורך מוחלט מחושב לפי ערך בסיס משותף יחיד, והשוואה בין יחידה יחסית לערך בסיס שיכול להשתנות.
לא ניתן לשנות ערכים מוחלטים, אבל אפשר לשנות יחידות יחסיות

יחידות של אזור התצוגה הן מוחלצות.

לא נכון
נכון

משאבים