คุณสมบัติ mask-composite

คุณสมบัติ mask-composite ช่วยให้สามารถรวมมาสก์หลายอันที่ใช้กับองค์ประกอบเดียวกันได้ มันกำหนดว่ามาสก์ต่าง ๆ จะทำงานร่วมกันอย่างไรเมื่อซ้อนทับกัน

ไวยากรณ์

cssตัวเลือก {
  mask-composite: <compositing-operator>#;
}

ค่า

ค่า คำอธิบาย
add ผลลัพธ์คือการรวมกันของมาสก์ทั้งหมด (ค่าเริ่มต้น)
subtract มาสก์อันที่สองถูกหักออกจากอันแรก
intersect แสดงเฉพาะพื้นที่ที่มาสก์ตัดกัน
exclude แสดงพื้นที่ที่ไม่ใช่ส่วนที่มาสก์มีร่วมกัน

ตัวอย่าง . โหมด add

การรวมมาสก์สองอัน (รูปหัวใจและลูกศร):

html<img id="image" src="image.jpg">
css#image {
  width: 500px;
  height: 281px;
  mask-image: 
    url("heart.svg"),
    url("arrow.svg");
  mask-position: 
    100px 50px,
    200px 30px;
  mask-size: 150px;
  mask-repeat: no-repeat;
  mask-composite: add;
}

Результат:

ตัวอย่าง . โหมด subtract

การหักลบรูปลูกศรออกจากรูปหัวใจ:

html<img id="image" src="image.jpg">
css#image {
  width: 500px;
  height: 281px;
  mask-image: 
    url("heart.svg"),
    url("arrow.svg");
  mask-position: 
    100px 50px,
    170px 80px;
  mask-size: 
    250px,
    120px;
  mask-repeat: no-repeat;
  mask-composite: subtract;
}

Результат:

ตัวอย่าง . โหมด intersect

แสดงเฉพาะพื้นที่ที่มาสก์ตัดกัน:

html<img id="image" src="image.jpg">
css#image {
  width: 500px;
  height: 281px;
  mask-image: 
    url("heart.svg"),
    url("arrow.svg");
  mask-position: 
    100px 50px,
    50px 30px;
  mask-size: 150px;
  mask-repeat: no-repeat;
  mask-composite: intersect;
}

Результат:

ตัวอย่าง . โหมด exclude

แสดงพื้นที่ที่ไม่ใช่ส่วนที่มาสก์มีร่วมกัน:

html<img id="image" src="image.jpg">
css#image {
  width: 500px;
  height: 281px;
  mask-image: 
    url("heart.svg"),
    url("arrow.svg");
  mask-position: 
    100px 50px,
    50px 30px;
  mask-size: 150px;
  mask-repeat: no-repeat;
  mask-composite: exclude;
}

Результат:

ตัวอย่าง . การใช้ร่วมกับ Gradient

การใช้กับมาสก์แบบ Gradient:

html<div id="gradient-box"></div>
css#gradient-box {
  width: 400px;
  height: 400px;
  background: linear-gradient(45deg, red, yellow, green, blue);
  mask-image: 
    radial-gradient(circle at 30% 30%, black 40%, transparent 70%),
    radial-gradient(circle at 70% 70%, black 40%, transparent 70%);
  mask-composite: exclude;
}

Результат:

ดูเพิ่มเติม

  • คุณสมบัติ mask-image,
    กำหนดรูปภาพสำหรับมาสก์
  • คุณสมบัติ mask,
    ชวเลขสำหรับคุณสมบัติมาสก์ทั้งหมด
  • คุณสมบัติ mask-mode,
    กำหนดโหมดการซ้อนทับของมาสก์
  • คุณสมบัติ mix-blend-mode,
    กำหนดโหมดการผสมผสานขององค์ประกอบ