2011-12-15 10 views
7

Emsでフォントサイズを指定しています。つまり、親コンテナを基準にしています。私はいくつかの子要素を持っており、計算を行うたびに親のサイズを繰り返すことを望まない。だから私は持っている:文字列の補間が遅い

@articleFontSize: 21/16; 

の場合は、さらに上の、私が使用:あなたが期待よう

font-size: @articleFontSizeem; 

が、私は '変数@articleFontSizeemが定義されていない' を得ます。

は、私はそれを補間した場合:

font-size: @{articleFontSize}em; 

を再度コンパイルすることを拒否し、私は単なる「構文エラー」を取得します。

font-size: @articleFontSize~"em"; 

これはコンパイル - が、出力には私のようなコードを取得する:それは単位の前にスペースを追加していますので、彼らは、ブラウザによって無視されている、すなわち

font-size: 1.3125 em; 

私はMacR(2.0ベータ5)で実行しています。設定では、「システムRuby 1.8.7」をコンパイルに使用しています。

UPDATED SOLUTIONS:

。正しい単位をゼロ個追加してください:

font-size: 0em + @articleFontSize; 

b。 (私の以前の別の方法 - 関数を使用する):で呼び出され

.rFont(@target, @context) { 
    @ratio: @target/@context; 
    font-size: ~"@{ratio}em"; 
} 

.rFont(11,@articleFontSize); 

(不要なスペースに注意していない、正しい)出力:

font-size: 0.7063571428571428em; 

私は期待していませんでした@ {ratio}をチルダ+引用符の中に入れてそれを展開します。しかし、それは動作します(他にはほとんど何もありません。)

この質問は助け: concatenate values in less (css) without a space

+0

脱出方法は、あなたに感謝 – Huangism

答えて

11

font-size: 0em + @articleFontSize; 
+0

Genius!完璧に動作します、ありがとう。 –

+7

美しいハックですが、あなたは 'font-size:unit(@articleFontSize、em);' – TKrugg

1

あなたはarticleFontSize変数にEMを入れることはできますか?たとえば、次のように

@articleFontSize: 21/16em; 

それともそれは多分うまくいかない場合:http://snook.ca/archives/html_and_css/font-size-with-remそれはすべて持っている:

@articleFontSize: (21/16)em; 
+0

はい、できます、私を支援してきました。私は以前にそれを排除しましたが、私のロジックが間違っているように見えます。実際に設定する必要があります: –

+0

(2回目の試行)実際には初期サイズを21(no formula or units)後で行うことができます:font-size:12/@ articleFontSizeそれを表現するEms。 (私がLESSなしで書いたのであれば、12/16emを12/21emに変更して、正しいサイズにする必要があります。私が何を意味するのか分かります)。 .. –

+0

@articleFontSize:(21/@ articleFontSize)em;大括弧は有効ではありませんが、もう一度、21/16などの変数名を使用するかどうかに関係なく、余分なスペースがあります*私はスペースがどこから来ているのかわかりません。 –

-1

代わりに 'REM' の測定部を見てくださいしてみてください相対的なems /%の利点は、まだpxの予測可能性を維持し、 '化合物サイジング'子elemsを防ぎます。

よろしく、

+0

と書くことができます。これは質問とは関係ありません。ユニットのタイプは無関係です – WickyNilliams

関連する問題