Đây là ít mixin mà tôi sử dụng để đạt được điều này cho ảnh nền. retina.js không hoạt động cho hình nền nếu bạn đang sử dụng dotLess, vì nó yêu cầu kết hợp riêng của nó, bản thân nó sử dụng đánh giá tập lệnh không được hỗ trợ trong dotLess.
Mẹo với tất cả những điều này là nhận hỗ trợ của IE8. Nó không thể dễ dàng thực hiện kích thước nền nên trường hợp cơ sở (truy vấn không phải phương tiện di động) phải là một biểu tượng đơn giản, không có tỷ lệ. Sau đó, truy vấn phương tiện sẽ xử lý trường hợp võng mạc và có thể sử dụng miễn phí lớp kích thước nền vì võng mạc sẽ không bao giờ được sử dụng trên IE8.
.retina-background-image( @path, @filename,@extension, @size )
{
.background-size( cover );
background-image: url( "@{path}@{filename}@{extension}" );
@media only screen and ( -webkit-min-device-pixel-ratio: 2 ),
only screen and ( -moz-min-device-pixel-ratio: 2 ),
only screen and ( -o-min-device-pixel-ratio: 2/1 ),
only screen and ( min-device-pixel-ratio: 2 )
{
background-image:url( "@{path}@{filename}@x2@{extension}" );
background-size:@size @size;
}
}
Mẫu sử dụng:
.retina-background-image( "../references/Images/", "start_grey-97_12", ".png", 12px );
Ths yêu cầu bạn có hai tệp:
start_grey-97_12.png
start_grey-97_12@2x.png
Nơi 2xtệp có độ phân giải gấp đôi cho võng mạc.