计算宽度从百分比到像素,然后在LESS CSS中减去像素
我会计算一些元素的宽度,从百分比到像素,所以我会通过使用LESS减去-10px。 这是可能的?
div { width:100%; height:100px; > span { width:calc(100% - 10px); height:100px; } }
我在CSS3中使用calc()
,所以它不工作calc(100% - 10px)
例如:如果100%= 500px,那么width = 490px(500-10);
我做了一个testing演示: http : //jsfiddle.net/4DujZ/55/
所以填充会说: 5 (10px / 2)所有的时候我resize。
我可以less用吗? 我知道如何做的jQuery和简单的CSS边缘填充或其他…但我会尽量做function在LESS与calc()
您可以转义calc
参数,以防止它们在编译时被评估。
用你的例子,你可以简单地围绕这些参数,像这样:
calc(~'100% - 10px')
演示: http : //jsfiddle.net/c5aq20b6/
我发现我用以下三种方法之一:
基本逃跑
calc
参数中的所有内容都被定义为一个string,并且在客户端评估之前是完全静态的:
lessinput
div { > span { width:calc(~'100% - 10px'); } }
CSS输出
div > span { width: calc(100% - 10px); }
variables的插值
你可以在string中插入一个LESSvariables:
lessinput
div { > span { @pad: 10px; width:calc(~'100% - @{pad}'); } }
CSS输出
div > span { width: calc(100% - 10px); }
混合转义和编译值
您可能想要跳过一个百分比值,但请继续评估编译的内容:
lessinput
@btnWidth: 40px; div { > span { @pad: 10px; width:calc(~'(100% - @{pad})' - (@btnWidth * 2)); } }
CSS输出
div > span { width: calc((100% - 10px) - 80px); }
资料来源: http : //lesscss.org/functions/#string-functions-escape 。
我认为width: -moz-calc(25% - 1em);
是你在找什么。 你可能想给这个链接寻找任何进一步的帮助
或者,您可以使用这样的margin属性:
{ background:#222; width:100%; height:100px; margin-left: 10px; margin-right: 10px; display:block; }
尝试这个 :
width:auto; margin-right:50px;