Reputation: 1779
I want to assign 2 kinds of pictures before a li element, writing SASS. Instead of using nth-child() for each, or 2 different classes, I wonder if there is a smarter way, like a for loop.
Here is the css:
.class1:before {
content: url('../images/image1.png');
}
.class2:before {
content: url('../images/image2.png');
}
Here is the html:
<ul>
<li class="class1">text</li>
<li class="class2">text</li>
<li class="class1">text</li>
<li class="class2">text</li>
<li class="class1">text</li>
<li class="class2">text</li>
<li class="class1">text</li>
<li class="class2">text</li>
<li class="class1">text</li>
<li class="class2">text</li>
<li class="class1">text</li>
</ul>
Upvotes: 1
Views: 356
Reputation: 1057
You can use nth-child()
's odd
and even
selectors like this:
ul li:nth-child(odd) {
content: url('../images/image1.png');
}
ul li:nth-child(even) {
content: url('../images/image2.png');
}
EDIT: You can use :before
selector with :nth-child()
as well. Try this:
ul li:nth-child(odd):before {
content: url('../images/image1.png');
}
ul li:nth-child(even)::before {
content: url('../images/image2.png');
}
Upvotes: 2