Menu

CSS Background Color: צבע רקע לעמודים, לאלמנטים ושקיפות

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

בדף הזה יש עורכים שאפשר להריץ - לערוך, להריץ ולראות את הפלט מיד.

איך קובעים צבע רקע

background-color ממלא את התיבה של אלמנט בצבע, כולל ה-padding שלו והשטח שמתחת לגבול שלו. הוא מקבל כל צבע CSS.

צבע העמוד נקבע על body, הכרטיס וההודעה על ה-divs שלהם, וההדגשה על אלמנט inline. אלמנטים מסוג inline מקבלים רקע רק מאחורי הטקסט שלהם, שורה אחר שורה.

צבע הרקע של העמוד כולו

שימו את background-color על body. אם לאלמנט <html> אין רקע משלו, הדפדפן צובע את הרקע של body על כל החלון, גם במקום שבו התוכן של body נגמר:

body {
  background-color: #111827;
  color: #f9fafb; /* change the text color too, for contrast */
}

הדרך הישנה ב-HTML הייתה <body bgcolor="black">. התכונה bgcolor מיושנת בכל אלמנט, אז השתמשו ב-CSS במקומה. דפדפנים עדיין מכבדים אותה בשביל עמודים ישנים, ולכן ייתכן שהיא נראית כאילו היא עובדת.

רקעים שקופים

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

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

איפה הצבע נצבע

כברירת מחדל הרקע מגיע עד הקצה החיצוני של הגבול (כך שהוא נראה דרך גבול מקווקו או חצי שקוף). background-clip משנה את זה:

בתיבה הראשונה הכתום נראה בין הקווקווים. בשנייה הוא נעצר בקצה הפנימי של הגבול, ובשלישית רק אזור התוכן צבוע. ה-margin אף פעם לא נצבע: הוא תמיד שקוף.

שורות טבלה מפוספסות

רקע על כל שורה שנייה עוזר לסרוק טבלאות רחבות בקלות:

background-color מול הקיצור background

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

.hero {
  background-image: linear-gradient(#2563eb, #1e40af);
  background: #111827;          /* also resets background-image to none */
}

.hero {
  background-image: linear-gradient(#2563eb, #1e40af);
  background-color: #111827;    /* only the color; the gradient stays */
}

השתמשו ב-background-color כשאתם מתכוונים רק לצבע. השתמשו ב-background כשאתם קובעים את הרקע כולו במקום אחד, לרוב צבע ותמונה; ראו background-image.

נגישות: התאימו אותו לצבע הטקסט

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

טעויות נפוצות

  • שימוש ב-bgcolor. הוא מיושן. השתמשו ב-background-color.
  • שימוש ב-opacity לרקע שקוף. הוא מעמעם גם את התוכן. השתמשו בצבע אלפא.
  • קיצור background אחרי background-image. הוא מאפס את התמונה. כתבו background-color במקום.
  • ציפייה שה-margin יציג את הצבע. ה-margin נמצא מחוץ לרקע. השתמשו ב-padding לרווח צבוע.
  • רקע כהה עם טקסט ברירת מחדל. הגדירו גם color בהיר.

שאלות נפוצות

איך משנים את צבע הרקע ב-HTML?

משתמשים במאפיין ה-CSS background-color. לעמוד כולו: body { background-color: #f3f4f6; }. לאלמנט אחד: <div style="background-color: #fef3c7;">.

האם bgcolor עדיין תקין ב-HTML?

לא. התכונה bgcolor על <body>, <table> ו-<td> מיושנת ב-HTML5. דפדפנים עדיין מציירים אותה בשביל עמודים ישנים, אבל הדרך הנכונה היא background-color ב-CSS.

איך הופכים צבע רקע לשקוף?

משתמשים בצבע עם ערוץ אלפא, למשל background-color: rgb(37 99 235 / 20%);. בניגוד ל-opacity, כך הטקסט שבפנים נשאר גלוי לגמרי.

מה ההבדל בין background ל-background-color?

background-color קובע רק את הצבע. background הוא קיצור לכל מאפייני הרקע (צבע, תמונה, מיקום, גודל, חזרה, attachment, origin ו-clip), ולכן background: red; גם מאפס כל תמונת רקע ל-none.

למה צבע הרקע של body ממלא את כל החלון?

כשלאלמנט <html> אין רקע משלו, הדפדפן צובע את הרקע של body על כל הקנבס, גם מעבר לתיבה של body. תנו ל-html רקע אם אתם צריכים שהשניים יהיו שונים.

איור של שפות התכנות ב-Coddy

ללמוד תכנות עם Coddy

להתחיל