我正在尝试在Meteor应用中使用两个.less文件。所有文件都在一个Meteor应用程序文件夹中。我有一个.less文件,定义了一般的UI外观
在ui.less:
.ui-gradient-topdown(@from, @to) {
background-color: @from;
/* Safari 4+, Chrome 1-9 */
background-image: -webkit-gradient(linear, 0% 0% 0% 100%, from(@from), to(@to));
/* Safari 5.1+, Mobile Safari, Chrome 10+ */
background-image: -webkit-linear-gradient(top, @from, @to);
/* Firefox 3.6+ */
background-image: -moz-linear-gradient(top, @from, @to);
/* IE 10+ */
background-image: -ms-linear-gradient(top, @from, @to);
/* Opera 11.10+ */
background-image: -o-linear-gradient(top, @from, @to);
}
在myapp.less
@import "ui";
html {
min-height: 100%;
min-width: 320px;
}
body {
.ui-gradient-topdown(#000, #FFF);
}
#new_message_input {
background: #F00;
overflow: scroll;
}
但是,在Meteor提供的页面中,我得到了:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="/ui.less.css">
... more stuff below ...
未导入myapp.less样式表?
我想要一个可以@import各种mixin .less文件的app .less文件。做这个的最好方式是什么?
答案 0 :(得分:18)
因为看起来这个问题仍然是最新的,所以我试着回答它。
在较新版本的meteor中(从v0.7.1.1开始).lessimport
已被弃用。新方法是.import.less
。通往它的方法是:
// client/mixins.import.less
.opacity(@opacity) {
opacity: @opacity;
// IE8 filter
@opacity-ie: (@opacity * 100);
filter: ~"alpha(opacity=@{opacity-ie})";
}
然后在你的样式表中@import你要使用你的mixins:
// client/main.less
@import "mixins.import.less";
// relative to the current file
// if absolute it will be relative to your project root
.some-div {
.opacity(0.5);
}
答案 1 :(得分:4)
来自Meteor Docs:
如果你想@import一个文件,给它扩展名.lessimport 防止Meteor独立处理它。
答案 2 :(得分:3)
我的意思是:
将所有较少的文件放在“client”文件夹中。
Meteor编译它们,因此不需要导入语句。
导入功能效果很好!变量打破了事情。
答案 3 :(得分:1)
我没有足够的声誉为@EzRaM发表评论,我作为流星初学者有点挣扎,我希望这有助于其他人。
在Meteor 1.6中,我想将myOwnMixins.less文件包含在@import来自node_module的另一个.less文件中,这就是我所做的:
1)/client/myOwnMixins.less(无需重命名* .import.less)
@import '/node_modules/antd/lib/style/themes/default.less';
.right {
float: right;
height: 100%;
}
... more less code ...
2)/imports/ui/layout/MyHeader.js,无需导入/client/myOwnMixins.less文件,因为.less是由meteor编译的,默认包含,简单使用className。
<div className="right">Right Aligned</div>