A mask
trong CSS ẩn một phần của phần tử được áp dụng cho.
.el ( mask-image: url(star.svg); )
Giả sử bạn có một phần tử với nền ảnh và đồ họa SVG đen trắng để sử dụng làm mặt nạ, như sau:


Bạn có thể đặt hình ảnh là một background-image
và mặt nạ là một mask-image
trên cùng một phần tử và nhận được một cái gì đó như sau:
Mặt nạ có rất nhiều điểm chung với nền ở chỗ bạn có thể định kích thước, định vị chúng và lặp lại chúng và tương tự như nền. Xem các thuộc tính liên quan bên dưới. Nhưng đây là một điều thú vị khác về mặt nạ mà chúng chia sẻ với nền: chúng có thể là gradient.
Đây là hình nền tương tự, chỉ với một linear-gradient
chiếc mặt nạ che nó, làm cho phần trên trong suốt mờ đi phần dưới không trong suốt chút nào:
Điều đó hoạt động bởi vì đầu của linear-gradient
là transparent
. Tôi đã có thể cho rằng nó sẽ làm việc nếu nó white
cũng như dài như mask-type
đã luminance
, nhưng điều đó dường như không làm việc trong bất kỳ trình duyệt đối với tôi.
Nói về luminance
mặt nạ, điều đó dường như không hiệu quả đối với hình ảnh dưới dạng mặt nạ có định dạng raster như JPG.webp hoặc PNG đối với tôi. Cập nhật : Độc giả Micheal Hall viết bằng một bản demo trong đó nó có thể liên quan đến việc sử dụng thuộc tính tay dài. Firefox dường như hỗ trợ khái niệm này nếu bạn chỉ sử dụng tốc ký.
Nhưng mặt nạ alpha dường như hoạt động tốt. Như trong đồ họa raster sử dụng độ trong suốt alpha thực tế. Như thế này:


Và chỉ để chứng minh một điểm, một hoạt ảnh màu bạn có thể nhìn thấy qua mặt nạ:
Các mask-image
bất động sản cũng có thể được sử dụng trực tiếp bên trong các yếu tố SVG. Giống như kiểm tra mặt nạ hình elip này cũng có bộ lọc mờ:
Có vẻ như bạn có thể lấy mặt nạ SVG đó và áp dụng nó cho các phần tử khác với mask-image: url(#mask);
nhưng tôi không thấy điều đó thực sự hoạt động. Nó chỉ hoạt động trong SVG và có tác dụng phụ khó chịu là xóa hoàn toàn hình ảnh nếu được sử dụng bên ngoài SVG.
Hỗ trợ trình duyệt
Dữ liệu hỗ trợ trình duyệt này là từ Caniuse, có nhiều chi tiết hơn. Một con số cho biết rằng trình duyệt hỗ trợ tính năng ở phiên bản đó trở lên.
Máy tính để bàn
Trình duyệt Chrome | Firefox | I E | Cạnh | Safari |
---|---|---|---|---|
91 * | 53 | Không | 88 * | TP * |
Di động / Máy tính bảng
Chrome dành cho Android | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 * | 85 | 81 * | 14.0-14.4 * |