【发布时间】:2017-09-15 05:19:34
【问题描述】:
我在父 div 中有 20 个子 div。我想设置每个子 div 的动态左侧位置。我想使用 CSS 来做到这一点。
我知道 nth-child,但它不适用于 nth-child,因为 nth-child 将应用相同的左值。
例如:
#bars {
height: 30px;
left: 50%;
margin: -30px 0 0 -20px;
position: absolute;
top: 50%;
width: 400px;
}
.bar {
background: #666;
bottom: 1px;
height: 3px;
position: absolute;
width: 3px;
animation: sound 0ms -800ms linear infinite alternate;
}
.bar:nth-child(1) {
left: 1px;
animation-duration: 474ms;
}
.bar:nth-child(2) {
left: 5px;
animation-duration: 433ms;
}
.bar:nth-child(3) {
left: 9px;
animation-duration: 407ms;
}
.bar:nth-child(4) {
left: 13px;
animation-duration: 458ms;
}
.bar:nth-child(5) {
left: 17px;
animation-duration: 400ms;
}
.bar:nth-child(6) {
left: 21px;
animation-duration: 427ms;
}
.bar:nth-child(7) {
left: 25px;
animation-duration: 441ms;
}
.bar:nth-child(8) {
left: 29px;
animation-duration: 419ms;
}
.bar:nth-child(9) {
left: 33px;
animation-duration: 487ms;
}
.bar:nth-child(10) {
left: 37px;
animation-duration: 442ms;
}
<div id="bars">
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
</div>
我想动态设置每个第 n 个孩子的左边。是否可以使用 nth-child 动态添加元素的左侧?
如您所见,我已将左侧设置为静态。我为每个子元素定义了left 值。虽然我想动态设置它。例如:
div:nth-child(2n) {
left: n * 15;
}
有这样的可能吗?
【问题讨论】:
-
动态是什么意思?
-
如果你提供了一些关于你想要实现的细节,那会很有帮助,因为你可以在没有绝对定位/动态设置左值的情况下实现这样的视觉效果:codepen.io/anon/pen/XRXbdJ
-
如您所见,我已将左侧设置为静态。为每个子元素定义的左值。而我想动态设置。例如: div:nth-child(2n){left:n*15;} 有可能这样吗?
-
@SahilDhir 不,你可以用 css 做到这一点
-
请edit 在你的问题中加入@jack,它将帮助那些试图回答你问题的人。你可以使用 CSS 预处理器吗?
标签: html css css-selectors