Sass 想知道SCSS与LESS的等价物是什么;什么是逃跑?

Sass 想知道SCSS与LESS的等价物是什么;什么是逃跑?,sass,less,Sass,Less,我正在将一个样式表从LESS转换为SCSS,在很大程度上它进行得很顺利,但有一个问题:我似乎无法让我的一个混音工作 基本上,我还没有完全加入html5的潮流,我仍然使用图像作为浏览器兼容性的渐变 我编写了一个PHP脚本来动态生成渐变(是的,并缓存它们!),然后在调用mixin时,LESS负责链接到渐变 反正, 我的旧mixin(来自LESS): } 这是迄今为止我为我的新mixin(SCSS)所做的: 问题是: 如果不进行转义,url最终将类似于: /img/gradient/v/5px/25p

我正在将一个样式表从LESS转换为SCSS,在很大程度上它进行得很顺利,但有一个问题:我似乎无法让我的一个混音工作

基本上,我还没有完全加入html5的潮流,我仍然使用图像作为浏览器兼容性的渐变

我编写了一个PHP脚本来动态生成渐变(是的,并缓存它们!),然后在调用mixin时,LESS负责链接到渐变

反正, 我的旧mixin(来自LESS):

}

这是迄今为止我为我的新mixin(SCSS)所做的:

问题是: 如果不进行转义,url最终将类似于:

/img/gradient/v/5px/25px/transparent/#ffe4c4.png
应该是:

/img/gradient/v/5px/25px/transparent/%23ffe4c4.png
当然,由于hash标记的存在,服务器最多只能看到transparent/这样它就无法获得颜色信息

剥离散列标签是一个可以接受的解决方案,如果可以的话(尽管我更喜欢像以前那样逃避它们),但我似乎找不到任何方法来做

谢谢

我知道了

这让我找到了正确的方向:

这让我走了剩下的路:

如果这对其他人有用,下面是我的代码:) config.rb(需要库):

lib/urlencode.rb:

module Sass::Script::Functions
  def urlencode(string)
    Sass::Script::String.new(ERB::Util.url_encode(string));
  end
  declare :urlencode, :args => [:string]
end
然后就是在我的样式表中实现的问题:

@mixin verticalGradient($startColor, $endColor, $height){
  background: $endColor url('#{$img_path}gradient/v/5px/' + $height + '/' + urlencode($startColor) + '/' + urlencode($endColor) + '.png') 0 0 repeat-x;
}

我认为应该是Sass::Script::String.new(ERB::Util.url_encode(String.value));绝对不是string.value--.value不返回任何数据。它的工作原理和我的一样。它绝对是string.value!如果没有.value,则返回字符串inclusive“,这是错误的。$endColor和$startColor没有被引用。如果它们是,则由我的mixin生成的背景色的颜色部分将无效,因为CSS颜色不能被引用。例如$start_color:#abc;$end_color:#def;
require File.dirname(__FILE__) + "/lib/urlencode.rb"
module Sass::Script::Functions
  def urlencode(string)
    Sass::Script::String.new(ERB::Util.url_encode(string));
  end
  declare :urlencode, :args => [:string]
end
@mixin verticalGradient($startColor, $endColor, $height){
  background: $endColor url('#{$img_path}gradient/v/5px/' + $height + '/' + urlencode($startColor) + '/' + urlencode($endColor) + '.png') 0 0 repeat-x;
}