我正在使用的Less编译器(OrangeBits和无点1.3.0.5)正在积极翻译

body { width: calc(100% - 250px - 1.5em); }




body { width: calc(-151.5%); }


显然不希望这样做。我想知道是否有一种方法可以通知Less编译器在编译过程中实质上忽略该属性。我搜索了Less文档和两个编译器的文档,但找不到任何内容。

Less或Less编译器支持吗?

如果没有,是吗?有CSS扩展器吗?

评论

您确定不希望编译器的攻击性降低吗?

我也很确定,希望编译器更具攻击性! (之前的评论中的双重否定使我感到困惑;))(所以我也对下面的不错功能投了赞成票)

#1 楼

Less不再因为calc而默认在v3.00内计算表达式。


原始答案(Less v1.x...2.x):

执行此操作:

body { width: calc(~"100% - 250px - 1.5em"); }


在Less 1.4.0中,我们将有一个strictMaths选项,该选项要求所有Less计算都放在方括号内,因此calc将“开箱即用”地工作。这是一个重大突破,是一个选择。 1.4.0的早期测试版默认情况下启用此选项。发行版默认情况下将其关闭。

评论


请注意,如果使用Twitter的凹槽进行较少的编译,它将忽略这种转义。至少在撰写此评论时。

–阿提拉·富洛普(Attila Fulop)
2012年11月13日12:12



我只是在less.css 1.4.0中尝试了calc(100%-50px),结果是calc(50%)。令人敬畏的〜“ ...”技巧仍然有效,但是我对“开箱即用”的陈述感到困惑,这使我认为上面的方法会起作用。卢克,Less 1.4.0中对calc的支持如何变化?谢谢!

–布莱恩·亨特(Brian M. Hunt)
2013年6月11日13:30

问题是,为什么less.js首先尝试进行计算?由于它无法计算出明智的答案,因此应该为“ 100%-250px”抛出错误。

– mpen
13年8月2日在18:33

对于将来的读者,您还可以只跳过运算符,从而也可以使用变量。示例:calc(@somePercent〜“-” @someLength)

– 0b10011
2014年8月7日在20:51

为什么要减少错误计算或引发错误的原因,为什么它不能意识到用户正在尝试做的事情而不管它呢?显然,百分比和像素值不能同时计算。

– dfmiller
16年2月9日,0:17

#2 楼

calc的一个非常常见的用例是采用100%的宽度并在元素周围添加一些边距。

可以使用以下方法做到这一点:

@someMarginVariable = 15px;

margin: @someMarginVariable;
width: calc(~"100% - "@someMarginVariable*2);
width: -moz-calc(~"100% - "@someMarginVariable*2);
width: -webkit-calc(~"100% - "@someMarginVariable*2);


评论


-o-calc-尚不支持。

–另一个
16年8月8日在7:52

#3 楼

有几种转义选项具有相同的结果:

body { width: ~"calc(100% - 250px - 1.5em)"; }
body { width: calc(~"100% - 250px - 1.5em"); }
body { width: calc(100% ~"-" 250px ~"-" 1.5em); }


#4 楼

如本文中所述,有一种更整齐的方式将变量包含在转义的calc中:CSS3 calc()函数不适用于Less#974

@variable: 2em;

body{ width: calc(~"100% - @{variable} * 2");}


通过使用大括号,您无需关闭并重新打开转义的引号。