2

次の少ない mixin を定義しています。

.TopDownActiveGradient(@s1, @s2){ 
background: -moz-linear-gradient(top, @s1 0%, @s2 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,@s1), color-stop(100%,@s2)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, @s1 0%, @s2 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, @s1 0%, @s2 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, @s1 0%, @s2 100%); /* IE10+ */
background: linear-gradient(to bottom, @s1 0%, @s2 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='@{s1}', endColorstr='@{s2}'); /* IE6-8 */}

そして、それは次のように使用されます:

.TopDownActiveGradient(#f7f7f7, #fffffe);

これで、入力した色を簡略版 (#dadada など) に縮小できない場合に正常に機能します。つまり、#ffffff を #ffff に変換できる色として使用すると、Ie6 のフィルターとして機能しません。 -8 はフルカラーの 16 進値を想定しています。

この問題は、縮小オプションがオンになっている場合にのみ発生します。縮小しないことを選択した場合、#ffffff は「白」に変わり、正常に機能します。

私の質問は、ミックスインでカラー 16 進コードの縮小を停止するにはどうすればよいですか? または、この制限を回避する方法はありますか?

私は多くのことを試しましたが、どれもうまくいきませんでした。

4

1 に答える 1

2

8 文字の 16 進数の場合、これは dotless メインで修正されました - https://github.com/dotless/dotless/commit/52ba9a4ccf4e9a895d557f01112ab4c7f4cad8a7

これは現在のリリースです。

6文字の16進数が必要な場合は、補間を使用してみてください

~"@col"

ただし、うまくいくかどうかはわかりません。

于 2012-09-19T08:08:11.637 に答える