רקעים

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

שכבות הרקע הן הרחוקות ביותר מהמשתמש, והן מוצגות מאחורי התוכן של התיבה, החל מאזור padding-box שלה. כך שכבת הרקע לא תחפוף לגבולות בכלל.

צבע הרקע

Browser Support

  • Chrome: 1.
  • Edge: 12.
  • Firefox: 1.
  • Safari: 1.

Source

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

תמונות רקע

Browser Support

  • Chrome: 1.
  • Edge: 12.
  • Firefox: 1.
  • Safari: 1.

Source

מעל השכבה background-color, אפשר להוסיף תמונה לרקע באמצעות המאפיין background-image. background-image מקבל את הנתונים הבאים:

  • כתובת URL של תמונה או URI של נתונים באמצעות פונקציית ה-CSS url.
  • תמונה שנוצרה באופן דינמי באמצעות פונקציית CSS של שיפוע.

הגדרת background-image באמצעות פונקציית ה-CSS url

רקעים בגוון מדורג ב-CSS

יש כמה פונקציות CSS של שיפוע שמאפשרות ליצור תמונת רקע, כשעוברים אליהם שני צבעים או יותר.

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

הדגמה שמראה דוגמה להחלת תמונה ברקע באמצעות פונקציות שיפוע:

תמונות רקע חוזרות

Browser Support

  • Chrome: 1.
  • Edge: 12.
  • Firefox: 1.
  • Safari: 1.

Source

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

כדי לשנות את זה, משתמשים במאפיין background-repeat עם אחד מהערכים הבאים:

  • repeat: התמונה חוזרת על עצמה בתוך המרחב הזמין, וחתוכת לפי הצורך.
  • round: התמונה חוזרת על עצמה אופקית ואנכית כדי שתתאים כמה שיותר מופעים במרחב הזמין. ככל שהמרחב הזמין גדל, התמונה נמתחת, ואחרי שהיא נמתחת לחצי מהרוחב המקורי שלה, היא דחוסה כדי להוסיף עוד מופעי תמונה.
  • space: התמונה חוזרת על עצמה אופקית ואנכית כדי שתתאים לכמה שיותר מופעים במרחב הזמין בלי חיתוך – מרווחים בין המופעים של התמונה לפי הצורך. תמונות חוזרות נוגעות בקצוות של המרחב שבו שכבת הרקע תופסת, והמרחב הלבן מחולק באופן שווה ביניהן.

המאפיין background-repeat מאפשר להגדיר את ההתנהגות של ציר ה-X וציר ה-Y בנפרד. הפרמטר הראשון מגדיר את התנהגות החזרה האופקית, והפרמטר השני מגדיר את התנהגות החזרה האנכית.

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

בקיצור הדרך יש גם אפשרויות נוחות של מילה אחת כדי להבהיר את הכוונה שלכם.

הערך repeat-x חוזר על תמונה רק אופקית, והוא שווה ל-repeat no-repeat.

בהדגמה הבאה מוצגות היכולות האלה של המאפיין background-repeat:

מיקום הרקע

Browser Support

  • Chrome: 1.
  • Edge: 12.
  • Firefox: 1.
  • Safari: 1.

Source

יכול להיות ששמתם לב שלפעמים תמונות באינטרנט מעוצבות באמצעות הצהרת background-repeat: no-repeat, והן מוצגות בפינה הימנית העליונה של המאגר שלהן.

המיקום הראשוני של תמונות הרקע הוא בפינה השמאלית העליונה. אפשר לשנות את ההתנהגות הזו באמצעות שינוי המיקום של התמונה באמצעות המאפיין background-position.

בדומה למאפיין background-repeat, המאפיין background-position מאפשר למקם תמונות בציר x ובציר y בנפרד באמצעות שני ערכים כברירת מחדל.

כשמשתמשים באורך ובאחוזים ב-CSS, הפרמטר הראשון תואם לציר האופקי והפרמטר השני תואם לציר האנכי.

כשמשתמשים רק במילות מפתח, הסדר שלהן לא חשוב:

מה מותר לעשות
background-position: left 50%;
מה מותר לעשות
background-position: top left;
מה מותר לעשות
background-position: left top;

הסדר לא משנה למילות מפתח שמשויכות לצירים שונים של מיקום.

מה אסור לעשות
  background-position: 50% left;

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

מה אסור לעשות
  background-position: left right;

אי אפשר להשתמש בו-זמנית במילות מפתח שמשויכות לאותו ציר.

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

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

כשמשתמשים בשלושה או ארבעה פרמטרים, לפני אורך או אחוז ב-CSS צריכות להופיע מילות המפתח top,‏ left,‏ right או bottom כדי שהדפדפן יוכל לחשב מאיזה קצה של תיבת ה-CSS צריך להתחיל את ההיסט.

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

מה מותר לעשות
background-position: bottom 88% right;
מה מותר לעשות
background-position: right bottom 88%;
מה אסור לעשות
background-position: 88% bottom right;
כשמשתמשים בשלושה פרמטרים או יותר, צריך להוסיף לפני ערך האורך של ה-CSS את מילות המפתח top, ‏ right, ‏ bottom או left.
מה מותר לעשות
background-position: bottom 88% right 33%;
מה מותר לעשות
background-position: right 33% bottom 88%;
מה אסור לעשות
background-position: 88% 33% bottom left;
כשמשתמשים בשלושה פרמטרים או יותר, צריך להוסיף לפני ערך האורך של ה-CSS את מילות המפתח top, ‏ right, ‏ bottom או left.

אם הקוד background-position: top left 20% מוחל על תמונת רקע ב-CSS, התמונה ממוקמת בחלק העליון של התיבה. הערך 20% מייצג סטייה של 20% מצד ימין של התיבה (בציר x).

אם הקוד background-position: top 20% left מוחל על תמונת רקע ב-CSS, הערך 20% מייצג סטייה של 20% מהחלק העליון של התיבה ב-CSS (בציר y), והתמונה ממוקמת בצד ימין של התיבה.

כשמשתמשים בארבעה פרמטרים, שתי מילות המפתח מותאמות לשני ערכים שתואמים להיסט ביחס למקורות של כל מילת מפתח שצוינה. אם הקוד background-position: bottom 20% right 30% מוחל על background-image, תמונת הרקע ממוקמת 20% מהחלק התחתון ו-30% מהצד הימני של תיבת ה-CSS.

הדגמה הבאה מדגימה את ההתנהגות הזו:

ריכזנו כאן דוגמאות נוספות לשימוש במאפיין background-position באמצעות שילוב של CSS וערכים של מילות מפתח:

גודל הרקע

Browser Support

  • Chrome: 3.
  • Edge: 12.
  • Firefox: 4.
  • Safari: 5.

Source

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

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

אפשר להשתמש במילות המפתח הבאות במאפיין background-size:

  • auto: כשמשתמשים ב-auto בנפרד, גודל התמונה ברקע נקבע על סמך רוחבה וגובהה המובנים. כשמשתמשים ב-auto לצד ערך CSS אחר לרוחב (הפרמטר הראשון) או לגובה (הפרמטר השני), הגודל של המאפיין שמוגדר ל-auto משתנה לפי הצורך כדי לשמור על יחס הגובה-רוחב הטבעי של התמונה. זו התנהגות ברירת המחדל של נכס background-size.
  • cover: מכסה את כל האזור של שכבת הרקע. יכול להיות שהתמונה מותאמת לגודל או לחתוך.
  • contain: שינוי גודל התמונה כך שתתאים למרחב ללא מתיחה או חיתוך. כתוצאה מכך, יכול להישאר מקום ריק שיגרום לתמונה לחזור על עצמה, אלא אם הערך של background-repeat מוגדר כ-no-repeat.

שני הפרמטרים האחרונים מיועדים לשימוש עצמאי, ללא פרמטר נוסף.

הדגמה הבאה ממחישה את מילות המפתח האלה בפעולה:

הדגמה של החלת מילות המפתח האלה על background-size:

קובץ מצורף ברקע

Browser Support

  • Chrome: 1.
  • Edge: 12.
  • Firefox: 1.
  • Safari: 1.

Source

בעזרת המאפיין background-attachment אפשר לשנות את התנהגות המיקום הקבוע של תמונות רקע (תמונות שנכללות בשכבת רקע) ברגע שהשכבה גלויה במסך.

אפשר להזין בו 3 מילות מפתח: scroll,‏ fixed ו-local.

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

שימוש בערך fixed קובע את המיקום של תמונות הרקע ביחס למסך.

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

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

מקור הרקע

Browser Support

  • Chrome: 1.
  • Edge: 12.
  • Firefox: 4.
  • Safari: 3.

Source

המאפיין background-origin מאפשר לשנות את אזור הרקעים שמשויכים לתיבת מודעה מסוימת. הערכים שהנכס מקבל תואמים לאזורים border-box,‏ padding-box ו-content-box של תיבה .

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

קטע וידאו לרקע

Browser Support

  • Chrome: 1.
  • Edge: 12.
  • Firefox: 4.
  • Safari: 5.

Source

המאפיין background-clip קובע מה יהיה גלוי מבחינה חזותית בשכבת הרקע, ללא קשר לגבולות שנוצרו על ידי המאפיין background-origin.

בדומה ל-background-origin, האזורים שאפשר לציין הם border-box,‏ padding-box ו-content-box, בהתאם למיקום שבו אפשר ליצור שכבת רקע ב-CSS. כשמשתמשים במילות המפתח האלה, כל עיבוד של הרקע מעבר לאזור שצוין ייחתוך.

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

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

Browser Support

  • Chrome: 1.
  • Edge: 12.
  • Firefox: 4.
  • Safari: 5.

Source

מספר רקעים

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

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

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

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

background-image: url("https://assets.codepen.io/7518/pngaaa.com-1272986.png"),
    url("https://assets.codepen.io/7518/blob.svg"),
    linear-gradient(hsl(191deg, 40%, 86%), hsla(191deg, 96%, 96%, 0.5));
  background-size: contain, cover, auto;
  background-repeat: no-repeat, no-repeat, no-repeat;
  background-position: 50% 50%, 10% 50%, 0% 0%;
  background-origin: padding-box, border-box, content-box;

קיצור הדרך לרקע

כדי שיהיה קל יותר לעצב את שכבת הרקע של התיבה, במיוחד כשרוצים להשתמש בכמה שכבות רקע, יש קיצור דרך שעומד בדפוס הספציפי הבא:

background:
  <background-image>
  <background-position> / <background-size>?
  <background-repeat>
  <background-attachment>
  <background-origin>
  <background-clip>
  <background-color>?

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

ההצהרה הבאה מקצצת את הרקע ומקורה בתיבת התוכן:

background: url("https://assets.codepen.io/7518/blob.svg") 50%
      50% / contain no-repeat content-box;

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

background: url("https://assets.codepen.io/7518/pngaaa.com-1272986.png") 50% 50%/contain no-repeat padding-box, url("https://assets.codepen.io/7518/blob.svg") 10% 50% / cover border-box, linear-gradient(hsl(191deg, 40%, 86%), hsla(191deg, 96%, 96%, 0.5) ) 0% 0% / cover no-repeat content-box ;

בדיקת ההבנה

בדיקת הידע שלכם בנושא רקעים ב-CSS

תמונות הרקע ממוקמות בפינה הימנית העליונה של תיבת CSS.

לא נכון
True

תמונות הרקע חוזרות על עצמן כברירת מחדל.

True
לא נכון

אילו מההצהרות הבאות של background-position תקינות?

background-position: 50% left
background-position: left
background-position: top right 33%
background-position: right bottom

כדי להגדיר תמונת רקע שתישאר קבועה בתוך חלון התצוגה, משתמשים ב-:

background-attachment: scroll
background-fixed-to-viewport: true
background-position: fixed
background-attachment: fixed

ברירת המחדל של background-origin לרקע בתוך תיבה של CSS היא:

padding-box
content-box
margin-box
border-box