نظرة عامة
لتطبيق أنماط واقعية من التآكل أو الملمس (مثل Grunge أو الضوضاء أو ملمس الورق) على عنصر معيّن، استخدِم CSS Masking (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;
}
الطريقة الثانية: استخدام تدرجات 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. يعني ذلك أنّ المتصفّح يقرّر تلقائيًا ما إذا كان سيستخدم قناة ألفا (الشفافية) أو السطوع (السطوع) للقناع استنادًا إلى نوع المصدر الذي تقدّمه:
| نوع مصدر القناع | وضع الإخفاء التلقائي | سلوك الإخفاء |
|---|---|---|
عنصر SVG <mask> المضمَّن |
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 */
}
}