我将计算一些元素的宽度从百分比到像素,所以我将减去-10px通过使用LESS。这是可能的?
div { width:100%; height:100px; > span { width:calc(100% - 10px); height:100px; } }
我在CSS3中使用calc(),所以它不工作calc(100% – 10px)
例如:if 100%= 500px so width = 490px(500-10);
我做了一个测试演示:http://jsfiddle.net/4DujZ/55/
所以padding会说:5(10px / 2)所有的时候,当我调整大小。
我可以在LESS做吗?我知道如何做在jQuery和简单的CSS如margin margin或…但我会尝试做功能LESS与calc()
解决方法
您可以转义calc参数,以防止在编译时对其进行评估。
使用你的例子,你只需环绕参数,像这样:
calc(~'100% - 10px')
演示:http://jsfiddle.net/c5aq20b6/
我发现我使用以下三种方式之一:
基本逃生
calc参数中的所有内容都定义为字符串,并且在客户端评估之前是完全静态的:
LESS输入
div { > span { width:calc(~'100% - 10px'); } }
CSS输出
div > span { width: calc(100% - 10px); }
变量插值
您可以在字符串中插入一个LESS变量:
LESS输入
div { > span { @pad: 10px; width:calc(~'100% - @{pad}'); } }
CSS输出
div > span { width: calc(100% - 10px); }
混合转义和编译的值
您可能想要转义百分比值,但请继续在编译时评估一些内容:
LESS输入
@btnWidth: 40px; div { > span { @pad: 10px; width:calc(~'(100% - @{pad})' - (@btnWidth * 2)); } }
集成输出
div > span { width: calc((100% - 10px) - 80px); }