我想知道是否有可能,仅使用css,在同一类名内使用元素属性在DOM中的呈现顺序来设置元素属性的值。
让问题更清楚的例子:
假设我有一个名为demo
的类,并且我愿意呈现两个以demo
为类的元素:
<div id="first" class="demo"></div>
<div id="second" class="demo"></div>
现在,在我的.css
文件中定义了demo
:
.demo{
font-size: 10px
}
我想实现的是id为first
的div
将具有10px
的font-size
,id为second
的div
将具有20px
的font-size
。并且随后以相同类名demo
动态呈现的每一个其它div
将具有calc(10*appearnceNumber)+'px'
的font-size
。(id=first
div
是类demo
的第一个元素,因此appearnceNumber
将是1,而font-size
将是10px
(。
如果数量有限,您可以近似如下:
:root {
--base:10px;
}
.demo {
font-size:var(--base);
}
.demo ~ .demo {
font-size:calc(2*var(--base));
}
.demo ~ .demo ~ .demo {
font-size:calc(3*var(--base));
}
.demo ~ .demo ~ .demo ~ .demo{
font-size:calc(4*var(--base));
}
.demo ~ .demo ~ .demo ~ .demo ~ .demo{
font-size:calc(5*var(--base));
}
.demo ~ .demo ~ .demo ~ .demo ~ .demo ~ .demo{
font-size:calc(6*var(--base));
}
.demo ~ .demo ~ .demo ~ .demo ~ .demo ~ .demo ~ .demo{
font-size:calc(7*var(--base));
}
<div class="demo">text</div>
<div class="demo">text</div>
<div class="demo">text</div>
<div class="demo">text</div>
<div class="demo">text</div>
<div class="demo">text</div>
<div class="demo">text</div>