问题
I want to import all styles from another less file, but into a limited scope. I'm trying this:
"my-site.less"
.wrapper-class {
@import "path/to/styles.less";
}
But this doesn't work at all. I'm using the browser-based less.js option, and I can see the GET statement that is run when it actually does the import. But the resultant CSS does not contain any of the styles from the other sheet. If I do it like this, it works:
.wrapper-class
{
/* ... */
}
@import "path/to/styles.less";
But this defeats the original purpose. So is there any way to do a limited-scope @import like this in Less? Thanks!
回答1:
According to the css-spec, the @import
-declaration has to come before all other declarations in the css-file. So your @import
inside the rule is expected to fail. I guess the @import
ing at the end of the file not failing is goodwill of the browser-vendors.
I guess LESS will abide by the same rules.
EDIT: the question is, why do you want to have those styles scoped? With proper declarations, this should not be necessary.
回答2:
Since this question was posted and answered, pre-processors have implemented @import with scope. This now works in LESS, SASS and Stylus.
example:
.lt-ie9 {
@import "ie8-fixes";
}
回答3:
The syntax of LESS (and CSS) don't allow @imports
into CSS rules.
Try use namespace:
styles.less
.styles {
[your code]
}
Then, replace the @import
for namespace:
.wrapper-class {
.styles;
}
Reference:
http://lesscss.org/features/
来源:https://stackoverflow.com/questions/9623791/import-of-less-files-into-a-limited-scope