2012-04-30 6 views
7

IEでグラデーションを生成するための次のCSSコードに対応するLESSコードを書き込もうとしています。不必要なスペースをCSSが挿入する

filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff9600',endColorstr='#ff6900'); 

次LESSコードです:あなたは色の両側に挿入されたスペースがある見ることができるように

filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=' #ff9600 ', endColorstr=' #ff6900 '); 

:それは、次のCSSコードを与えるコンパイルに

.gradient(@start_color, @end_color) 
{ 
    filter:~"progid:DXImageTransform.Microsoft.gradient(startColorstr='"@start_color~"',endColorstr='"@end_color~"')"; 
} 
.gradient(#ff9600,#ff6900) 

どのIEが色を正しく読み取っていないかによって値が異なります。

http://crunchapp.net/http://winless.org/を使用してレッスンコードをコンパイルしましたが、両方とも同じ結果が得られています。これらのスペースを避けるためのハックはありますか?ありがとう。

答えて

10

文字列を終了して再起動する代わりに、変数補間を使用します。

など。

〜 "バー@ {名} foo" という

そして、いやスペースが挿入されます。

+0

これは動作します:)。どうもありがとう! –

0

私はそれに精通していませんLESS;

.class { 
    filter: ~"ms:alwaysHasItsOwnSyntax.For.Stuff()"; 
} 

がそこには~変数に取り付けられていないとあなたはを通して単一引用符を渡すためにしようとしていたならば、それは"'@var'"代わりにして'"@var"'であろうとしなければならないことを示唆している。しかし、私は自分のページで見ることができるものから内部ではなく内部で単一引用符で囲みます。私はここでもう少し研究をして、これがコメントではなく答えだと思う。

+0

このとして動作しません。コンパイラは変数名を変数ではなく文字列として扱い、変数名はコンパイルされたCSSに表示されます。 –

3

私はちょうど

filter: progid:dximagetransform.microsoft.gradient(startColorstr='@{start}', endColorstr='@{stopColor}', GradientType=0); 

を入れて、それは以下のように適切にコンパイルされます...

をLESS.app(www.lesscss.org)を使用しています:

filter: progid:dximagetransform.microsoft.gradient(startColorstr='#76787a', endColorstr='#9d9ea0', GradientType=0); 
関連する問題