Вот меньшее количество миксинов, которые я использую для этого для фоновых изображений. retina.js не работает с фоновыми изображениями, если вы используете dotLess, поскольку для этого требуется собственный миксин, который сам использует оценку скрипта, которая не поддерживается в dotLess.
Уловка со всем этим заключается в том, чтобы получить поддержку IE8. Он не может легко сделать background-size, поэтому базовым случаем (немобильный медиа-запрос) должен быть простой немасштабируемый значок. Затем медиа-запрос обрабатывает случай сетчатки и может свободно использовать класс размера фона, поскольку сетчатка никогда не будет использоваться в 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
файл двойного разрешения для сетчатки.