מסננים

הפודקאסט של CSS – 023: פילטרים

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

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

הנכס filter

תמיכה בדפדפן

  • 53
  • 12
  • 35
  • 9.1

מקור

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

blur

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

.my-element {
    filter: blur(0.2em);
}

brightness

תמיכה בדפדפן

  • 18
  • 12
  • 35
  • 6

מקור

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

.my-element {
    filter: brightness(80%);
}

contrast

תמיכה בדפדפן

  • 18
  • 12
  • 35
  • 6

מקור

מגדירים ערך בין 0% ל-100% כדי להקטין או להגדיל את הניגודיות, בהתאמה.

.my-element {
    filter: contrast(160%);
}

grayscale

תמיכה בדפדפן

  • 18
  • 12
  • 35
  • 6

מקור

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

.my-element {
    filter: grayscale(80%);
}

invert

תמיכה בדפדפן

  • 18
  • 12
  • 35
  • 6

מקור

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

.my-element {
    filter: invert(1);
}

opacity

תמיכה בדפדפן

  • 18
  • 12
  • 35
  • 6

מקור

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

.my-element {
    filter: opacity(0.3);
}

saturate

תמיכה בדפדפן

  • 18
  • 12
  • 35
  • 6

מקור

מסנן הרוויה דומה מאוד למסנן brightness, ומקבל את אותו ארגומנט: מספר או אחוז. במקום להגדיל או להקטין את אפקט הבהירות, saturate מגביר או מקטין את רוויית הצבע.

.my-element {
    filter: saturate(155%);
}

sepia

תמיכה בדפדפן

  • 18
  • 12
  • 35
  • 6

מקור

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

.my-element {
    filter: sepia(70%);
}

hue-rotate

תמיכה בדפדפן

  • 18
  • 12
  • 35
  • 6

מקור

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

.my-element {
    filter: hue-rotate(120deg);
}

drop-shadow

תמיכה בדפדפן

  • 18
  • 12
  • 35
  • 6

מקור

תוכלו להחיל הטלת צללית שקופצת לעיקול כמו שעושים בכלי עיצוב, כמו Photoshop באמצעות drop-shadow. הצללית מיושמת על מסכת אלפא. לכן היא שימושית מאוד להוספת צללית לתמונת חיתוך. המסנן drop-shadow מקבל פרמטר צלליות שמכיל ערכים מופרדים במאפיין היסט-x, היסט-y, הטשטוש והצבע. היא כמעט זהה ל-box-shadow, אבל אין תמיכה במילת המפתח inset ובערך המרווח.

.my-element {
    filter: drop-shadow(5px 5px 10px orange);
}

מידע נוסף על הסוגים השונים של הצלליות במודול אזורים כהים

url

תמיכה בדפדפן

  • 5
  • 12
  • 3
  • 6

מקור

המסנן url מאפשר להחיל מסנן SVG מרכיב או קובץ SVG מקושרים. מידע נוסף על מסנני SVG

פילטר של קולאז' תמונות ברקע

תמיכה בדפדפן

  • 76
  • 17
  • 103
  • 9

מקור

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

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

בחינת ההבנה

בחינת הידע שלך בשימוש במסננים

אילו מהאפשרויות הבאות הן פונקציות סינון ב-CSS?

grayscale()
🎉
invert()
🎉
flip()
כדאי לנסות שוב.
multiply()
כדאי לנסות שוב.
blur()
🎉
brightness()
🎉

האם שירות CSS יכול להשתמש במסנני SVG?

כן
פונקציית הסינון url() מפעילה
לא
כדאי לנסות שוב.