יחידות מידה

הפודקאסט בשירות CSS – 008: יחידות מידה למידות

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

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

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

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

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

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

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

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

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

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

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

בדיקת ההבנה

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

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

ס"מ
סנטימטרים, מימד מוחלט חוקי.
ממשק משתמש
ממשק משתמש הוא לא מאפיין ב-CSS.
בתוך
אינצ'ים, מאפיין מוחלט חוקי.
8
לא מאפיין CSS
px
פיקסלים, מאפיין מוחלט חוקי.
ch
יחידות תווים, מאפיין יחסי חוקי.
Ux
חוויית המשתמש היא לא מאפיין בשירות CSS.
em
האות M יחידות, מאפיין יחסי חוקי.
לדוגמה
האות 'x' יחידות, מאפיין יחסי חוקי.

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

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

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

נכון
יכול להיות שהם ייראו מוחלטים, אבל הם ביחס לאזור תצוגה שיכול להיות iframe או WebView, ולא תמיד מייצגים את גודל המסך של המכשיר.
לא נכון
הם ביחס לחלון המסמך שבו הם נוצרו, ועשוי להיות זהה או שונה ממסך המכשיר.

משאבים