Especifico los tamaños de fuente en Ems, lo que significa que son relativos al contenedor primario. Tengo varios elementos secundarios y no quiero repetir el tamaño principal cada vez que hago cálculos en él. Así que tengo:MENOS interpolación de cadena
@articleFontSize: 21/16;
Si, más adelante, utilizo:
font-size: @articleFontSizeem;
como era de esperar, recibo el mensaje '@articleFontSizeem variable está definida'.
Si Añado que:
font-size: @{articleFontSize}em;
de nuevo, se niega a compilar y acabo de obtener un 'error de sintaxis' sin formato.
font-size: @articleFontSize~"em";
Esto compila - pero en la salida me sale un código como:
font-size: 1.3125 em;
es decir, que éste se agrega un espacio antes de las unidades, así que son ignorados por el navegador.
Estoy ejecutando LiveReload en una Mac (2.0 beta 5) que de acuerdo con la configuración usa 'System Ruby 1.8.7' para la compilación.
soluciones de última generación:
a. Agregue una cantidad cero de las unidades correctas:
font-size: 0em + @articleFontSize;
b. (Mi método anterior alternativa - con ayuda de una función):
.rFont(@target, @context) {
@ratio: @target/@context;
font-size: ~"@{ratio}em";
}
Llamado con:
.rFont(11,@articleFontSize);
salida (correcto, tenga en cuenta no hay espacios no deseados):
font-size: 0.7063571428571428em;
No esperaba poniendo @ {ratio} dentro de tilde + quotes para expandirlo. Pero funciona (casi ninguna otra cosa.)
Esta pregunta ayudó: concatenate values in less (css) without a space
El método de escape me ha ayudado, gracias – Huangism