Ось менше міксину, який я використовую для досягнення цього для фонових зображень. retina.js не працює для фонових зображень, якщо ви використовуєте dotLess, оскільки для цього потрібен власний mixin, який сам використовує оцінку сценарію, яка не підтримується в dotLess.
Хитрість у всьому цьому полягає в тому, щоб отримати підтримку IE8. Він не може легко зробити фоновий розмір, тому базовий регістр (не запит на мобільний медіа) повинен бути простим значком, який не масштабується. Потім медіа-запит обробляє випадок сітківки і вільно використовувати клас розміру фону, оскільки сітківка ніколи не буде використовуватися в 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;
}
}
Зразок використання:
.retina-background-image( "../references/Images/", "start_grey-97_12", ".png", 12px );
Для цього потрібно мати два файли:
start_grey-97_12.png
start_grey-97_12@2x.png
Де 2x
файл подвійного дозволу для сітківки.