2012-03-08 7 views
13

私はこのようなCSSルールを持っている私はSASS RGBオフにすることができます>色の名前

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

それを変換することを防止する方法はありますそんな?私のページにはRGB値を探すJSがあり、ハッキーな機能ではこれらの文字列をRGBに変換する必要はありません。

+0

サスは私のためにこれをしません..あなたは確かにお尻が問題ですか? – Ben

+0

私たちがバックグラウンドを実行していれば、これは起こりません:#FFF、画像なし。それを試しましたか?どの出力様式を使用していますか? –

+0

ms-filterは短い16進数を認識せず、 'rake assets:precompile'はいつも私に短い16進数を与えます。人々が知らない 'ie-hex-str'関数があります。 Google。 –

答えて

27

デフォルトでは、Sassに#{}または変数を使用して強制的に補間しない限り、Sassはリテラルカラー値を16進値から変換しません。

補間を使用すると、関心のある値の「to_sass」バージョンが返されます。たとえば、#{ #fff }は「白」に補間されます。これは変数置換時にも起こります。変数として使用するとカラーリテラルがColorオブジェクトに変換され、次にスタイルシートに "to_sass"されます。

さらに、スタイルオプションcompressedを指定すると、バイト長のバージョンが少なくなります(#f00の代わりにred)。 whiteは5文字で、#fffは4であるため、ルールは#fffに変更されます。

変数を使用しているときに逆HTML4色の名前変換をオフにする方法はありません。回避策として、文字列としてカラー変数を宣言してから、unquote()関数でスタイルを使用することができます。

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

偉大な答えですが、それは私のために働くようには見えませんでした(* Sass 3.2.3 *)ので、おそらく何かが変わったでしょう。 – Dan

+0

コンパイルモードに関係なく、3.2.3で動作します。 '$ color: '#FFF'; .selector {背景:unquote($ color)url( '/ img/file.png'); } ' –

関連する問題