contrast()
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 contrast() CSS điều chỉnh độ tương phản của ảnh đầu vào. Kết quả của nó là một <filter-function>.
Try it
filter: contrast(1);
filter: contrast(1.75);
filter: contrast(50%);
filter: contrast(0);
<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
contrast(amount)
Giá trị
amountOptional-
Độ tương phản của kết quả, được chỉ định là
<number>hoặc<percentage>. Giá trị dưới100%làm giảm độ tương phản, trong khi giá trị trên100%làm tăng độ tương phản. Giá trị0hoặc0%tạo ra ảnh hoàn toàn xám, trong khi giá trị1hoặc100%giữ nguyên ảnh đầu vào. Giá trị âm không được phép. Giá trị khởi tạo cho interpolation là1. Giá trị mặc định là1.
Sau đây là các cặp giá trị tương đương:
contrast(0) /* Hoàn toàn xám */
contrast(0%)
contrast(0.65) /* Độ tương phản 65% */
contrast(65%)
contrast() /* Không có hiệu ứng */
contrast(1)
contrast(100%)
contrast(2) /* Gấp đôi độ tương phản */
contrast(200%)
Cú pháp chính thức
<contrast()> =
contrast( [ <number> | <percentage> ]? )
Ví dụ
>Với thuộc tính backdrop-filter
Ví dụ này áp dụng bộ lọc contrast() thông qua thuộc tính CSS backdrop-filter cho đoạn văn và văn bản monospace, thay đổi màu sắc khu vực phía sau <p> và <code>.
.container {
background: url("unity_for_the_people.jpg") no-repeat center / contain #333399;
}
p {
backdrop-filter: contrast(0.5);
}
code {
backdrop-filter: contrast(0.15);
}
Với thuộc tính filter
Ví dụ này áp dụng bộ lọc contrast() thông qua thuộc tính CSS filter, thay đổi độ tương phản bằng cách dịch chuyển màu sắc của toàn bộ phần tử, bao gồm nội dung, đường viền, nền và bóng.
p:first-of-type {
filter: contrast(30%);
}
p:last-of-type {
filter: contrast(300%);
}
Với url() và bộ lọc SVG contrast
Phần tử SVG <filter> được dùng để định nghĩa các hiệu ứng bộ lọc tùy chỉnh, sau đó có thể được tham chiếu bằng id. Phần tử con <feComponentTransfer> của <filter> cho phép tái ánh xạ màu sắc ở cấp độ điểm ảnh. Với nội dung sau:
<svg
xmlns="http://www.w3.org/2000/svg"
id="svg"
viewBox="0 0 240 151"
height="0"
width="0"
overflow="visible"
color-interpolation-filters="sRGB">
<filter id="contrast">
<feComponentTransfer>
<feFuncR type="linear" slope="2" intercept="-0.5" />
<feFuncG type="linear" slope="2" intercept="-0.5" />
<feFuncB type="linear" slope="2" intercept="-0.5" />
</feComponentTransfer>
</filter>
</svg>
Các giá trị này tạo ra kết quả giống nhau:
filter: contrast(200%);
filter: url("#contrast"); /* với SVG nhúng */
filter: url("folder/fileName.svg#contrast"); /* định nghĩa bộ lọc SVG ngoài */
Ví dụ này hiển thị ba ảnh: ảnh được áp dụng hàm bộ lọc contrast(), ảnh được áp dụng bộ lọc url() tương đương, và ảnh gốc để so sánh:
Thông số kỹ thuật
| Specification |
|---|
| Filter Effects Module Level 1> # funcdef-filter-contrast> |
Khả năng tương thích trình duyệt
Xem thêm
- Module hiệu ứng bộ lọc CSS
- Các hàm
<filter-function>khác có thể dùng trong giá trị của các thuộc tínhfiltervàbackdrop-filter: