在less和coffeescript之间分享变量?

时间:2012-12-09 12:40:26

标签: java javascript css coffeescript playframework-2.0

是否可以在Play中的Less(CSS)和CoffeScript(JavaScript)之间分享变量。

减:

@width: 600px;
@height: 800px;

.right {
  width: @width;
  height: @height;
}

CoffeScript:

width = 600
height = 800

stage = new Kinetic.Stage(
  container: 'mainCanvas'
  width: width
  height: height
)

我觉得必须在两个文件中重复自己非常不方便。

当然,我希望能够在更高的抽象层定义宽度和高度。

当然,任何更通用的技术都可以应用于任何框架。

3 个答案:

答案 0 :(得分:3)

就我而言,没有办法。

也许你可以在CSS中定义一个类,并从样式中调整宽度和高度。

答案 1 :(得分:1)

如果你只是尝试通过jquery设置css-class怎么办?

stage = new Kinetic.Stage
    container: 'mainCanvas'
    width: 0
    height: 0

mc = $("#mainCanvas")
#assuming that mainCanvas is the element you want to style
mc.addClass "right"

答案 2 :(得分:0)

Rosetta正是您要找的。


从npm页面...

实施例 想象一下,您想要创建一个共享变量:

$thumbnailSize = 250px

Rosetta允许您在Javascript中使用此变量:

var rosetta = require('./rosetta');
console.log('Thumbnail size is:', rosetta.thumbnailSize.val);

...和你的CSS(在这种情况下,是一个Stylus文件):

@import rosetta
.thumb { 
  width: $thumbnailSize
  height: $thumbnailSize
}