在使用google webfont import mixin时,我注意到无法动态构建@import URL。
.gFontImport (@name, @weights, @subsets) {
@url: "http://fonts.googleapis.com/css?family=@{name}:@{weights}&subset=@{subsets}";
@import url(@url);
}
Run Code Online (Sandbox Code Playgroud)
可以缩小到
@url: "http://localhost/test.css";
@import url(@url);
Run Code Online (Sandbox Code Playgroud)
这些附加测试均无效:
@import url("@{url}"); // this one renders at least
@import url(~"@{url}");
Run Code Online (Sandbox Code Playgroud)
当编译器呈现CSS文件时,@ import URL始终保持不变,例如 "@{url}"
它似乎可以在1.4 beta中使用。
在LESS中做这样的事情(我在less2css.org尝试过):
.gFontImport (@name, @weights, @subsets) {
@import url('http://fonts.googleapis.com/css?family=@{name}:@{weights}&subset=@{subsets}');
}
.gFontImport("Roboto+Slab",400,latin);
Run Code Online (Sandbox Code Playgroud)
在CSS中将具有预期的输出:
@import url('http://fonts.googleapis.com/css?family=Roboto+Slab:400&subset=latin');
Run Code Online (Sandbox Code Playgroud)
如果对您不起作用,则可以使用一种解决方法,将@import呼叫注入选择器名称:
.gFontImport (@name, @weights, @subsets) {
@gimport: ~"@import url('http://fonts.googleapis.com/css?family=@{name}:@{weights}&subset=@{subsets}');";
@{gimport} some-selector {/* */};
}
Run Code Online (Sandbox Code Playgroud)
所以在LESS中调用类似这样的内容:
.gFontImport("Roboto+Slab",400,latin);
Run Code Online (Sandbox Code Playgroud)
将在CSS中输出:
@import url('http://fonts.googleapis.com/css?family=Roboto+Slab:400&subset=latin');
some-selector {
/**/
}
Run Code Online (Sandbox Code Playgroud)
这行得通,但是有点混乱。在LESS的JavaScript实现中,您可以使用
`'\n'`
Run Code Online (Sandbox Code Playgroud)
和
`'\t'`
Run Code Online (Sandbox Code Playgroud)
在字符串插值中使其看起来更整洁。
| 归档时间: |
|
| 查看次数: |
9949 次 |
| 最近记录: |