Hành vi khó chịu của việc nâng cấp hình ảnh trên màn hình HiDPI, dẫn đến những bức ảnh mờ (hay còn gọi là cơn ác mộng của các nhiếp ảnh gia), cũng đã gây rắc rối cho tôi trong một thời gian khá dài. Tôi cũng tự hỏi rằng không có thuộc tính CSS đơn giản nào để vô hiệu hóa nó cho hình ảnh.
Giải pháp hiện tại của tôi với CSS trông như thế này:
@media only screen and (min--moz-device-pixel-ratio: 1.25),
(-o-min-device-pixel-ratio: 5/4),
(-webkit-min-device-pixel-ratio: 1.25),
(min-device-pixel-ratio: 1.25) {
img {
--pic-width: 460px;
width: calc(var(--pic-width) / 1.25 - var(--pic-width) + var(--pic-width));
}
}
@media only screen and (min--moz-device-pixel-ratio: 1.5),
(-o-min-device-pixel-ratio: 3/2),
(-webkit-min-device-pixel-ratio: 1.5),
(min-device-pixel-ratio: 1.5) {
img {
--pic-width: 460px;
width: calc(var(--pic-width) / 1.5 - var(--pic-width) + var(--pic-width));
}
}
@media only screen and (min--moz-device-pixel-ratio: 1.75),
(-o-min-device-pixel-ratio: 7/4),
(-webkit-min-device-pixel-ratio: 1.75),
(min-device-pixel-ratio: 1.75) {
img {
--pic-width: 460px;
width: calc(var(--pic-width) / 1.75 - var(--pic-width) + var(--pic-width));
}
}
@media only screen and (min--moz-device-pixel-ratio: 2.00),
(-o-min-device-pixel-ratio: 2),
(-webkit-min-device-pixel-ratio: 2.00),
(min-device-pixel-ratio: 2.00) {
img {
--pic-width: 460px;
width: calc(var(--pic-width) / 2.00 - var(--pic-width) + var(--pic-width));
}
}
Bước tiếp theo sẽ là sử dụng các lớp để xác định và đặt các kích thước hình ảnh khác nhau nếu cần. Tôi không biết một cách linh hoạt để có được kích thước hình ảnh. Hàm CSS attr () dường như không hoạt động cho việc này.