Compiler construction 较少的变量未通过导入获取
我在主.less文件中有以下内容:Compiler construction 较少的变量未通过导入获取,compiler-construction,import,less,Compiler Construction,Import,Less,我在主.less文件中有以下内容: @media only screen and (min-width: 47.0625em) { @import "_grid.less"; @import "_768up.less"; } @media only screen and (min-device-width: 47.0625em) and (max-device-width: 64.375em) { @import "_768to1030.less"; } 在\u
@media only screen and (min-width: 47.0625em) {
@import "_grid.less";
@import "_768up.less";
}
@media only screen
and (min-device-width: 47.0625em)
and (max-device-width: 64.375em) {
@import "_768to1030.less";
}
在\u grid.less
中有一个变量集,它在\u 768up.less
和\u 768to1030.less中都使用,但是当导入位于上方时,编译时会抛出错误
如果我将\u grid.less
导入移动到最后一个媒体查询中的第一个位置,它不会抛出错误,但是使用\u 768up.less中变量的元素都不会被设置样式
这真是个难题
另外,我正在使用OS X的CodeKit作为我的编译器 首先,您现在可以将@import
语句和媒体查询耦合在以下内容中:
@import "responsive/mobile" only screen and (min-width: 47.0625em) {
/* CSS GETS IMPORTED INTO A MEDIA QUERY */
}
我在这件事上绊倒了,花了更少的钱。。。这个问题在1.4中已经解决,但仍有一些编译器是端口(无点)或使用旧版本。如果有更新,也许可以解决这个问题
您应该尝试直接使用less.js,看看是否发生了错误。如果不是,那就是CodeKit编译器版本的问题。变量范围是您的问题
如果两者都使用了一个变量,则必须将该变量设置在@媒体
块的“外部”,以便两者都能访问该变量。因此,您需要这样做:
@import "_grid.less";
@media only screen and (min-width: 47.0625em) {
@import "_768up.less";
}
@media only screen
and (min-device-width: 47.0625em)
and (max-device-width: 64.375em) {
@import "_768to1030.less";
}
或者,您需要将这些常用变量分离到另一个文件中,然后执行以下操作:
@import "_commonVariables.less";
@media only screen and (min-width: 47.0625em) {
@import "_grid.less";
@import "_768up.less";
}
@media only screen
and (min-device-width: 47.0625em)
and (max-device-width: 64.375em) {
@import "_768to1030.less";
}
或者,您需要重复自己的操作,以便在@media
块的范围内获取变量:
@media only screen and (min-width: 47.0625em) {
@import "_grid.less";
@import "_768up.less";
}
@media only screen
and (min-device-width: 47.0625em)
and (max-device-width: 64.375em) {
@import "_grid.less";
@import "_768to1030.less";
}
我不知道@import
语句,谢谢。我将查看CodeKit,看看是不是这样。我仍然在使用移植的无点编译器处理这个问题。是否有人能够将(部分)较少的文件组合到较少的媒体查询语句中?谢谢,但我不想这样做,因为这会将\u网格.less
文件导入到我的移动css以及较大的屏幕中,这意味着我必须覆盖一些样式。然后需要进行一些重复,因为您需要以某种方式将该变量置于@媒体的作用域中。如果前两个解决方案由于需要覆盖而无法工作,则必须在需要代码的每个@媒体内重复\u网格.less
调用。我更新了答案以反映这一点。我在发布之前尝试过,但仍然抛出了n个错误。我认为这更多地与我的编译器(CodeKit)有关。最后,我刚刚去掉了\u网格。less
导入并将其添加到\u 768up。less
对此投了反对票,但没有解释原因?