מעברי מדרגות

הפודקאסט של שירות ה-CSS – 021: Gradients

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

רקע הדרגתי בצבע כהה עד סגול בהיר עם כותרת, פסקה וקישור.

יכול להיות שתחשבו בהתחלה שתצטרכו לייצא תמונה מכלי העיצוב בשביל זה, אבל אפשר להשתמש linear-gradient במקום זאת.

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

מעבר צבעים הדרגתי ליניארי

תמיכה בדפדפן

  • Chrome: 26.
  • קצה: 12.
  • Firefox: 16.
  • Safari: 7.

מקור

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

.my-element {
    background: linear-gradient(black, white);
}

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

.my-element {
    background: linear-gradient(to right, black, white);
}

ערך של עצירת צבע שמוגדר כאשר צבע מפסיק ומשולב עם השכנים. להדרגתיות של הדרגתי שמתחיל בגוון כהה של אדום בזווית של 45 מעלות, ב-30% מגודל ההדרגתיות שמשתנה לאדום בהיר יותר: זה נראה כך.

.my-element {
    background: linear-gradient(45deg, darkred 30%, crimson);
}

אפשר להוסיף כמה צבעים ועצירות צבעים שרוצים ב-linear-gradient(), וניתן ליצור שכבות הדרגתיות אחת על גבי השנייה, על ידי הפרדה בין הדרגתיות באמצעות פסיק.

מעבר צבעים הדרגתי רדיאלי

תמיכה בדפדפן

  • Chrome: 26.
  • קצה: 12.
  • Firefox: 16.
  • Safari: 7.

מקור

כדי ליצור הדרגתי שמוקרן בצורה מעגלית, המאפיין radial-gradient() כדי לעזור. הוא דומה לlinear-gradient(), אבל במקום לציין זווית, אפשר לציין מיקום וצורת סיום. אם מציינים רק צבעים, radial-gradient() יבחר באופן אוטומטי את המיקום כ-center ובוחרים עיגול או אליפסה, בהתאם לגודל התיבה.

.my-element {
    background: radial-gradient(white, black);
}

המיקום של ההדרגתיות דומה ל-background-position באמצעות מילות מפתח ו/או ערכי מספרים. גודל ההדרגתיות הרדיאלית קובע את גודל צורת הסיום של ההדרגתיות (עיגול או אליפסה) וכברירת מחדל יהיה farthest-corner, כלומר, היא נמצאת בדיוק בפינה הרחוקה ביותר של התיבה מהמרכז. אפשר גם להשתמש במילות המפתח הבאות:

  • closest-corner יעמוד בפינה הקרובה ביותר למרכז ההדרגתיות.
  • closest-side יעמוד בצד של התיבה הקרוב ביותר למרכז ההדרגתיות.
  • farthest-side יבצע את הפעולה ההפוך לשיטה closest-side.

אפשר להוסיף כמה עצירות צבע שרוצים, בדיוק כמו עם linear-gradient. באותו אופן, אפשר להוסיף גם כמה radial-gradients שרוצים.

הדרגתי של חרוט

תמיכה בדפדפן

  • Chrome: 69.
  • קצה: 79.
  • Firefox: 83.
  • Safari: 12.1.

מקור

הדרגתיות של חרוט כוללת נקודת מרכז בתיבה והיא מתחילה מלמעלה (ברירת מחדל), ומסתובב במעגל של 360 מעלות.

.my-element {
    background: conic-gradient(white, black);
}

conic-gradient() הפונקציה מקבלת ארגומנטים של מיקום וזווית.

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

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

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

חזרה ומיקס

לכל סוג של הדרגתי יש גם סוג חוזר. הנושאים האלה repeating-linear-gradient() repeating-radial-gradient() והקבוצה repeating-conic-gradient(). הן דומות לפונקציות ללא חזרה ונעזרות באותם ארגומנטים. ההבדל הוא שאם ניתן לחזור על ההדרגתיות המוגדרת כדי למלא את התיבה, בהתאם לשני הגדלים שלו,

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

.my-element {
  background: repeating-linear-gradient(
    45deg,
    red,
    red 30px,
    white 30px,
    white 60px
  );
}

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

משאבים

בדיקת ההבנה

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

מהו מספר הצבעים המינימלי הנדרש כדי ליצור הדרגתי?

1
כדאי לנסות שוב.
2
הם יכולים להיות באותו צבע ולהופיע בצבע אחיד, אבל כן, צריך לפחות 2 צבעים.
3
כדאי לנסות שוב.
4
כדאי לנסות שוב.

לרכיבים יכולים להיות מספר הדרגתיות כרקע?

נכון
המאפיין background-image מאפשר הרבה הדרגתיות. פשוט מפרידים ביניהם באמצעות פסיק.
לא נכון
אה, אבל הם יכולים!