เนื้อหาที่มีพื้นผิวที่มองเห็นได้

ฟีเจอร์บนเว็บ มาสก์

ภาพรวม

หากต้องการใช้รูปแบบสภาพอากาศหรือพื้นผิวที่สมจริง (เช่น กรันจ์ นอยส์ หรือพื้นผิวกระดาษ) กับองค์ประกอบ ให้ใช้การมาสก์ 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 */
  }
}