我将从百分比到像素计算某个元素的宽度,因此我将使用LESS和calc()减去-10px .这是可能的?
div {
span {
width:calc(100% - 10px);
}
}
Run Code Online (Sandbox Code Playgroud)
我使用CSS3 calc()所以它不起作用:calc(100% - 10px)
示例:如果100%= 500px,则宽度= 490px(500-10);
我做了一个测试演示:http://jsfiddle.net/4DujZ/55/
所以padding会说:5(10px/2),当我调整大小时.
我能做到这一点在LESS?我知道如何在jQuery和简单的CSS像保证金填充或做别的......但我会努力做到功能在LESS与calc()
nat*_*eta 240
您可以转义calc参数,以防止在编译时对它们进行求值.
使用您的示例,您只需将参数括起来,如下所示:
calc(~'100% - 10px')
Run Code Online (Sandbox Code Playgroud)
演示:http://jsfiddle.net/c5aq20b6/
我发现我使用以下三种方式之一:
calc参数中的所有内容都定义为字符串,并且在客户端评估之前完全是静态的:
div {
> span {
width: calc(~'100% - 10px');
}
}
Run Code Online (Sandbox Code Playgroud)
div > span {
width: calc(100% - 10px);
}
Run Code Online (Sandbox Code Playgroud)
您可以在字符串中插入LESS变量:
div {
> span {
@pad: 10px;
width: calc(~'100% - @{pad}');
}
}
Run Code Online (Sandbox Code Playgroud)
div > span {
width: calc(100% - 10px);
}
Run Code Online (Sandbox Code Playgroud)
您可能想要转义百分比值,但继续评估编译时的内容:
@btnWidth: 40px;
div {
> span {
@pad: 10px;
width: calc(~'(100% - @{pad})' - (@btnWidth * 2));
}
}
Run Code Online (Sandbox Code Playgroud)
div > span {
width: calc((100% - 10px) - 80px);
}
Run Code Online (Sandbox Code Playgroud)
资料来源:http://lesscss.org/functions/#string-functions-escape.