סקירה כללית
כדי להוסיף לאלמנט דפוסים ריאליסטיים של בלאי או טקסטורה (כמו גראנג', רעש או טקסטורה של נייר), משתמשים במסכת CSS (mask-image) עם תמונה של טקסטורה שחוזרת על עצמה. כך אפשר לגרום לתוכן עצמו להיראות בעל מרקם על ידי הפיכת חלקים ממנו לשקופים למחצה, במקום רק להוסיף שכבת-על של מרקם. כך נוצר מראה פיזי מציאותי יותר של החומר.
הטמעה
כדי להחיל תבנית טקסטורה:
שיטה 1: שימוש בתמונת רסטר חוזרת (מומלץ למרקמים ריאליסטיים)
זו השיטה הכי נפוצה ליצירת מרקמים מציאותיים.
.weathered-element {
/* MANDATORY: Use vendor prefix for wider support in older browsers */
-webkit-mask-image: url('grunge-pattern.png');
-webkit-mask-repeat: repeat; /* Repeat the pattern to fill the area */
-webkit-mask-size: 300px; /* Control the scale of the texture */
/* Standard property for modern browsers */
mask-image: url('grunge-pattern.png');
mask-repeat: repeat;
mask-size: 300px;
}
שיטה 2: שימוש במעברי צבע ב-CSS ליצירת דפוסים גיאומטריים
אפשר ליצור תבניות באמצעות מעברי צבע ב-CSS. הקובץ הזה הוא עצמאי ולא דורש קובצי תמונות חיצוניים.
.patterned-element {
--checkerboard-gradient:
linear-gradient(45deg, #000 25%, transparent 25%),
linear-gradient(-45deg, #000 25%, transparent 25%),
linear-gradient(45deg, transparent 75%, #000 75%),
linear-gradient(-45deg, transparent 75%, #000 75%);
/* Apply a checkerboard pattern as a mask */
-webkit-mask-image: var(--checkerboard-gradient);
-webkit-mask-size: 20px 20px;
-webkit-mask-position: 0 0, 0 10px, 10px -10px, -10px 0px;
mask-image: var(--checkerboard-gradient);
mask-size: 20px 20px;
mask-position: 0 0, 0 10px, 10px -10px, -10px 0px;
}
מצבי מיסוך: אלפא לעומת בהירות
כברירת מחדל, מסכות CSS משתמשות ב-mask-mode: match-source. זה אומר שהדפדפן מחליט באופן אוטומטי אם להשתמש בערוץ אלפא (שקיפות) או בבהירות של המסכה, על סמך סוג המקור שאתם מספקים:
| סוג מקור המסכה | מצב ברירת המחדל של האנונימיזציה | התנהגות של הסתרה |
|---|---|---|
רכיב <mask> של SVG מוטבע |
luminance |
האטימות נקבעת לפי הבהירות של הצבעים. לבן חושף תוכן, שחור מסתיר אותו ואפור יוצר שקיפות חלקית. |
| קובץ תמונה ישיר (למשל, קובץ PNG או SVG) | alpha |
האטימות נקבעת לפי השקיפות. החלקים האטומים חושפים את התוכן, והחלקים השקופים מסתירים אותו. |
| CSS Gradient | alpha |
האטימות נקבעת לפי השקיפות. צבעים אטומים (כמו black) חושפים את התוכן, וצבעים שקופים מסתירים אותו. |
אסטרטגיות חלופיות
אם הדפדפן לא תומך ב-mask-image או בגרסה עם הקידומת:
- הרכיב יוצג בלי הטקסטורה (מילוי נקי ואחיד).
- חשוב לוודא שהתוכן עדיין קריא בלי המרקם (שיפור הדרגתי).
- אתם יכולים להשתמש בתמונת רקע או בשכבת-על כחלופה כדי לדמות את המרקם, אבל זה לא ישפיע על השקיפות של התוכן עצמו.
/* Fallback: Use a background image for browsers without mask support */
@supports (not (mask-image: url(x))) and (not (-webkit-mask-image: url(x))) {
.weathered-element {
/* Fallback adds texture on top or behind, depending on implementation */
background-image: url('grunge-pattern.svg');
background-color: #fff; /* Ensure background is solid if needed */
}
}