Aquí está la mezcla menos que uso para lograr esto para las imágenes de fondo. retina.js no funciona para imágenes de fondo si está usando dotLess, ya que requiere su propio mixin, que a su vez usa la evaluación de script que no es compatible con dotLess.
El truco con todo esto es obtener soporte para IE8. No puede hacer fácilmente el tamaño de fondo, por lo que el caso base (consulta de medios no móviles) tiene que ser un icono simple sin escala. La consulta de medios luego maneja el caso de retina y es libre de usar la clase de tamaño de fondo, ya que retina nunca se usará en 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;
}
}
Muestra de uso:
.retina-background-image( "../references/Images/", "start_grey-97_12", ".png", 12px );
Esto requiere que tenga dos archivos:
start_grey-97_12.png
start_grey-97_12@2x.png
Donde el 2x
archivo es de doble resolución para retina.