Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 在字符串变量中使用calc()函数的Less_Css_Less_Media Queries - Fatal编程技术网

Css 在字符串变量中使用calc()函数的Less

Css 在字符串变量中使用calc()函数的Less,css,less,media-queries,Css,Less,Media Queries,我试着用更少的时间做这件事 @屏幕lg:1200px @笔记本电脑:~“仅屏幕和(最小宽度:768px)和(最大宽度:@{calc(屏幕lg-1px)}”) 直到1199px。但它不喜欢它 是否可以在字符串变量中使用calc()函数进行操作 谢谢。媒体查询必须在运行时进行评估,通常在构建时编译更少的查询。要完成这类工作,您可能需要客户端Javascript版本,并且每次调整窗口大小时重新编译更少的脚本,因此可能没有必要使用更少的脚本,您可以使用Javascript更快(更干净)地完成 也就是说,

我试着用更少的时间做这件事 @屏幕lg:1200px

@笔记本电脑:~“仅屏幕和(最小宽度:768px)和(最大宽度:@{calc(屏幕lg-1px)}”)

直到1199px。但它不喜欢它

是否可以在字符串变量中使用calc()函数进行操作


谢谢。

媒体查询必须在运行时进行评估,通常在构建时编译更少的查询。要完成这类工作,您可能需要客户端Javascript版本,并且每次调整窗口大小时重新编译更少的脚本,因此可能没有必要使用更少的脚本,您可以使用Javascript更快(更干净)地完成


也就是说,如果您尝试这样做,您可能必须向后执行(即,将较小的变量包装在媒体查询中)。但我不确定这是否有意义。

我认为您不需要任何
计算。您可以通过以下方式获得您想要的:

1.
@屏幕lg:1200px;
@屏幕lg最大值:(@屏幕lg-1);
@笔记本电脑:~“仅屏幕和(最小宽度:768px)和(最大宽度:@{screen lg max})”;
@笔记本电脑媒体{
颜色:红色;
}
2.
@屏幕lg:1200px;
@笔记本电脑:~“仅屏幕和(最小宽度:768px)和(最大宽度:(@screen lg-1)~”;
@笔记本电脑媒体{
颜色:红色;
}
3. (减1.7.0):

@屏幕lg:1200px;
.笔记本电脑(@styles){
@媒体屏幕和(最小宽度:768px)和(最大宽度:(@screen lg-1)){
@样式();
}
}
.笔记本电脑({
颜色:红色;
});

以上三个代码段都会生成以下CSS:

@仅介质屏幕和(最小宽度:768px)和(最大宽度:1199px){
颜色:红色;
}

由于Less是在构建时解析的,所以您可以只使用内置的数学功能。无需计算。这很好:

@screen-lg : 1200px;
@laptopsize: @screen-lg - 1px;

@laptop: ~"only screen and (min-width: 768px) and (max-width: @{laptopsize})";

@media @laptop {
    div{background: black;}
}

除非我误解了OP,否则这应该是公认的答案。