Sto specificando le dimensioni dei caratteri in Ems, il che significa che sono relativi al contenitore padre. Ho diversi elementi figlio e non voglio ripetere la dimensione genitore ogni volta che eseguo calcoli su di essa. Così ho:Interpolazione stringa MINENTE
@articleFontSize: 21/16;
Se, più avanti, io uso:
font-size: @articleFontSizeem;
come ci si aspetterebbe, ottengo '@articleFontSizeem variabile è indefinito'.
Se mi interpolare che:
font-size: @{articleFontSize}em;
poi di nuovo si rifiuta di compilare e ottengo solo una pianura 'errore di sintassi'.
font-size: @articleFontSize~"em";
Questo compila - ma in uscita ottengo un codice simile:
font-size: 1.3125 em;
cioè viene aggiunto uno spazio prima unità, quindi sono ignorati dal browser.
Sto eseguendo LiveReload su un Mac (2.0 beta 5) che secondo le impostazioni utilizza 'System Ruby 1.8.7' per la compilazione.
SOLUZIONI Aggiornamento:
a. Aggiungi una quantità zero delle unità corrette:
font-size: 0em + @articleFontSize;
b. (Mio precedente metodo alternativo - utilizzando una funzione):
.rFont(@target, @context) {
@ratio: @target/@context;
font-size: ~"@{ratio}em";
}
Chiamato con:
.rFont(11,@articleFontSize);
uscita (corretto, nota senza spazi indesiderati):
font-size: 0.7063571428571428em;
non mi aspettavo mettendo @ {ratio} all'interno di tilde + quotazioni per espanderlo ancora. Ma funziona (quasi niente altro lo fa.)
Questa domanda ha aiutato: concatenate values in less (css) without a space
Il metodo di fuga mi ha aiutato, grazie – Huangism