תוכן עם מרקם חזותי

תכונות באינטרנט: מסכות

סקירה כללית

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

הטמעה

כדי להחיל תבנית טקסטורה:

זו השיטה הכי נפוצה ליצירת מרקמים מציאותיים.

.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 */
  }
}