invert()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.
Hàm invert() CSS function đảo ngược các mẫu màu trong hình ảnh đầu vào. Kết quả của nó là một <filter-function>.
Try it
filter: invert(0);
filter: invert(0.3);
filter: invert(50%);
filter: invert(70%);
filter: invert(1);
<section id="default-example">
<img
class="transition-all"
id="example-element"
src="/shared-assets/images/examples/firefox-logo.svg"
width="200" />
</section>
Cú pháp
/* Không đảo ngược */
invert(0)
/* Đảo ngược hoàn toàn */
invert()
invert(1)
invert(100%)
/* Đảo ngược 60% */
invert(.6)
invert(60%)
Tham số
<number>hoặc<percentage>Optional-
Chỉ định mức độ chuyển đổi. Giá trị
100%là đảo ngược hoàn toàn, trong khi giá trị0%giữ nguyên đầu vào. Các giá trị từ0%đến100%là hệ số nhân tuyến tính trên hiệu ứng. Giá trị ban đầu cho interpolation là0. Giá trị mặc định là1.
Cú pháp chính thức
<invert()> =
invert( [ <number> | <percentage> ]? )
Bộ lọc SVG
Phần tử bộ lọc SVG <feComponentTransfer> cũng có thể được dùng để đảo ngược nội dung bằng cách tạo ra sự đảo ngược tương đương trên các phần tử bảng <feFuncR>, <feFuncG> và <feFuncB> lồng nhau. Chúng ta đặt cùng tableValue cho các phần tử gốc bộ lọc đỏ, xanh lá và xanh dương với cùng giá trị, sau đó chúng ta có thể tham chiếu hiệu ứng SVG bằng ID của <filter>:
<svg role="none">
<filter id="invert90">
<feComponentTransfer>
<feFuncR type="table" tableValues="0.1 0" />
<feFuncG type="table" tableValues="0.1 0" />
<feFuncB type="table" tableValues="0.1 0" />
</feComponentTransfer>
</filter>
</svg>
Các khai báo sau tạo ra hiệu ứng tương đương:
filter: invert(0.9);
filter: invert(90%);
filter: url("#invert90"); /* với SVG nhúng */
filter: url("fileName.svg#invert90"); /* SVG bên ngoài */
Ví dụ
Ví dụ này hiển thị ba hình ảnh để so sánh: hình ảnh với hàm bộ lọc invert() được áp dụng, hình ảnh với hàm SVG tương đương được áp dụng, và hình ảnh gốc:
SVG
Chúng ta tạo bộ lọc SVG đảo ngược nội dung áp dụng lên 70%:
<svg height="0">
<filter id="invert">
<feComponentTransfer>
<feFuncR type="table" tableValues="0.3 0" />
<feFuncG type="table" tableValues="0.3 0" />
<feFuncB type="table" tableValues="0.3 0" />
</feComponentTransfer>
</filter>
</svg>
CSS
Chúng ta thêm CSS sẽ đảo ngược các phần tử dựa trên class filter hoặc svgFilter của chúng:
.filter {
filter: invert(70%);
}
.svgFilter {
filter: url("#invert");
}
Thông số kỹ thuật
| Specification |
|---|
| Filter Effects Module Level 1> # funcdef-filter-invert> |
Khả năng tương thích trình duyệt
Xem thêm
Các hàm <filter-function> khác có thể được dùng trong các giá trị của thuộc tính filter và backdrop-filter bao gồm: