我正在计算一些宽度和边距,具体取决于孩子的数量。
在css3中是否可以使用如下变量:
.someClass {
width: -moz-calc(nrOfChilds * 80px);
}
我得到的其他一些课程编写如下:
.anotherClass:nth-child(n) {
margin-left: -moz-calc(n * 50px);
}
是否可以使用一些变量,如n或nrOfChilds?目前我多次声明我的第二个例子并手动更改第一个例子? 我知道javascript是一个解决方案。但是有没有针对此的原生css3解决方案?
/亲切的问候
基督教
答案 0 :(得分:10)
(截至2012年)在CSS3中无法做到这一点。
截至2019年(及更早),见上面接受的答案。
答案 1 :(得分:9)
现在所有主流浏览器都支持使用自定义变量计算CSS值,通过:
calc(...)
var(--...)
.somebar {
/* I define the initial value of "--mydepth" */
--mydepth: 1;
width: calc(var(--mydepth) * 50px);
height: 50px;
background: green;
}
.level1 {
--mydepth: 2;
}
.level2 {
--mydepth: 3;
}

<h3>Example of: calc(var(--mydepth) * 50px)</h3>
<div class="somebar"></div>
<div class="somebar level1"></div>
<div class="somebar level2"></div>
<h3>Expected result (if supported by browser)</h3>
<div class="somebar" style="width:50px"></div>
<div class="somebar" style="width:100px"></div>
<div class="somebar" style="width:150px"></div>
&#13;
答案 2 :(得分:2)
答案 3 :(得分:1)
答案 4 :(得分:0)
在CSS3中不可能,既不使用LESS也不使用SASS。唯一的方法是通过javascript,这应该很简单。
答案 5 :(得分:0)
使用SASS的示例:-
$nrOfChilds: 20;
.someClass {
width: calc(#{$nrOfChilds} * 80px);
}