是否可以为第n个孩子添加样式给第n个孩子?
我正在制作一份学生名单(15名学生),其中前5名学生的名字将变成绿色,然后6-10名是橙色,11-15名是红色。
就像将CSS应用于各种项目一样。
我找不到一些相关问题。
希望你理解我。
感谢。
reorderableList
ol li:first-child{
color: green;
}
ol li:nth-child(2), ol li:nth-child(3), ol li:nth-child(4), ol li:nth-child(5){
color: green;
}
ol li:nth-child(6), ol li:nth-child(7), ol li:nth-child(8), ol li:nth-child(9), ol li:nth-child(10){
color: orange;
}
ol li:nth-child(11), ol li:nth-child(12), ol li:nth-child(13), ol li:nth-child(14), ol li:nth-child(15){
color: red;
}
答案 0 :(得分:3)
这是你想要的吗?
在第一个css -n+5
中选择5th
元素之前的前五个元素是因为negetive。如果删除negetive,它将选择具有第5个元素的所有元素。因此,再次为元素11到15添加了n+11
。
如果您不想在第15个元素后添加css,可以使用.second
css。
.first p:nth-child(-n+5){
color:green;
}
.first p:nth-child(n + 5){
color:orange;
}
.first p:nth-child(n + 11){
color:red;
}
.second {
margin-top:50px;
}
.second p:nth-child(-n+5){
color:green;
}
.second p:nth-child(n + 6):nth-child(-n + 10){
color:orange;
}
.second p:nth-child(n + 11):nth-child(-n + 15){
color:red;
}
<div class="first">
<p>Student 1</p>
<p>Student 2</p>
<p>Student 3</p>
<p>Student 4</p>
<p>Student 5</p>
<p>Student 6</p>
<p>Student 7</p>
<p>Student 8</p>
<p>Student 9</p>
<p>Student 10</p>
<p>Student 11</p>
<p>Student 12</p>
<p>Student 13</p>
<p>Student 14</p>
<p>Student 15</p>
</div>
<div class="second">
<p>Student 1</p>
<p>Student 2</p>
<p>Student 3</p>
<p>Student 4</p>
<p>Student 5</p>
<p>Student 6</p>
<p>Student 7</p>
<p>Student 8</p>
<p>Student 9</p>
<p>Student 10</p>
<p>Student 11</p>
<p>Student 12</p>
<p>Student 13</p>
<p>Student 14</p>
<p>Student 15</p>
<p>Student 16</p>
<p>Student 17</p>
</div>
答案 1 :(得分:1)
抢劫此代码。根据您的要求。
ul li{
margin-bottom: 2px;
}
ul li:nth-child(n+1):nth-child(-n+5) {
background: #2e8209;
}
ul li:nth-child(n+6):nth-child(-n+10) {
background: #eb7436;
}
ul li:nth-child(n+11):nth-child(-n+15) {
background: #b10a0a;
}
<ul>
<li>Child 1</li>
<li>Child 2</li>
<li>Child 3</li>
<li>Child 4</li>
<li>Child 5</li>
<li>Child 6</li>
<li>Child 7</li>
<li>Child 8</li>
<li>Child 9</li>
<li>Child 10</li>
<li>Child 11</li>
<li>Child 12</li>
<li>Child 13</li>
<li>Child 14</li>
<li>Child 15</li>
</ul>
答案 2 :(得分:1)
<!DOCTYPE html>
<html>
<head>
<style>
p:not(:nth-child(n+7)) {
color: green;
}
</style>
</head>
<body>
<p>One</p>
<p>Two</p>
<p>Three</p>
<p>Four</p>
<p>Five</p>
<p>Six</p>
<p>Seven</p>
<p>Eight</p>
</body>
</html>
&#13;
下面的代码只会为前五行提供绿色, 假设p标签是你的类,
p:not(:nth-child(n+7)) {
color: green;
}
答案 3 :(得分:1)
您可以使用CSS子范围来实现您的解决方案。
<div>
<h3>Child Ranges</h3>
<ul>
<li><span></span></li>
<li><span></span></li>
<li><span></span></li>
<li><span></span></li>
<li><span></span></li>
<li><span></span></li>
<li><span></span></li>
<li><span></span></li>
<li><span></span></li>
<li><span></span></li>
<li><span></span></li>
</ul>
</div>
你的风格应该如下
li:nth-child(n+4):nth-child(-n+8) {
background: #298EB2;
}
li {
width: 20px;
height: 20px;
background: red;
margin: 5px;
display: inline-block;
}
如果您想了解有关nth-child的更多信息,可以访问此网站http://nthmaster.com/