2012-03-08 18 views
13

tengo una regla CSS como esto:puedo apagar SASS RGB -> Nombre del color

background: #fff url('/assets/img/file.png'); 

está compilando a:

background: white url("/assets/img/file.png"); 

¿Hay alguna manera de evitar que su conversión ¿como eso? Hay JS en mi página que busca valores RGB y no quiero tener que convertir esas cadenas a RGB en alguna función hacky.

+0

Sass no hace esto para mí .. Seguro Sass es su problema? – Ben

+0

Esto no ocurre si solo hacemos fondo: #FFF, sin la imagen. ¿Lo intentaste? ¿Qué estilo de salida estás usando? –

+0

Encontré esta página porque ms-filter no reconoce short-hex y 'rake assets: precompile' siempre me da un corto hexadecimal. Hay una función 'ie-hex-str' que la gente no conoce. Google eso. –

Respuesta

27

De manera predeterminada, Sass no convertirá los valores de color literales de sus valores hexadecimales a menos que esté forzando a Sass a interpolar con #{} o una variable.

El uso de la interpolación devolverá la versión "to_sass" del valor que le interese. Por ejemplo, #{ #fff } se interpolará a "blanco". Esto también ocurre durante las sustituciones de variables: los literales de color se traducen en objetos de Color cuando se usan como variables, luego se "to_sass" ed en su hoja de estilos.

Además, puede especificar la opción de estilo compressed, que devolverá la versión de menor longitud de bytes (es decir, red en lugar de #f00). Como white tiene 5 caracteres de largo y #fff es solo 4, su regla reemplazará con #fff en su lugar.

No hay manera de desactivar la conversión de nombre de color HTML4 inverso cuando se usan variables. Como solución temporal, puede declarar las variables de color como una cadena y luego usarlas en estilos con la función unquote().

$color: '#fff'; 
.white { color: unquote($color) } 
+0

Excelente respuesta, pero no pareció funcionar para mí (* Sass 3.2.3 *), así que quizás algo haya cambiado. – Dan

+0

Funciona para mí en 3.2.3, sin importar qué modo de compilación, por ejemplo, '$ color: '#FFF'; .selector {background: unquote ($ color) url ('/ img/file.png'); } ' –

Cuestiones relacionadas