Reputation: 2321
var divs = document.querySelectorAll('li a.shadow'),
i;
for (i = 0; i < divs.length; ++i) {
divs[i].parentNode.style.backgroundColor = "red";
}
.breadcrumb {
margin: 20px;
list-style: none;
font: 15px Helvetica, Arial, Sans-Serif;
padding: 0;
display: flex;
}
.breadcrumb li {
border-top: 1px solid black;
border-bottom: 1px solid black;
border-left: 1px solid white;
color: black !important;
text-decoration: none;
background: brown;
/* fallback color */
background: hsla(34, 85%, 35%, 1);
position: relative;
display: flex;
align-items: center;
}
.breadcrumb li:nth-child(2) {
background: rgb(221 221 221) !important;
border-left: 1px solid black !important;
}
.breadcrumb li:last-child {
background: rgb(221 221 221) !important;
border-right: 1px solid black !important;
}
.breadcrumb a,
.breadcrumb a:link,
.breadcrumb a:visited,
.breadcrumb a:active {
color: #212121;
margin: 0 0px;
}
.breadcrumb li span::before {
content: " ";
display: block;
width: 0;
height: 0;
border-top: 15px solid transparent;
border-bottom: 15px solid transparent;
border-left: 15px solid white;
position: absolute;
top: 50%;
margin-top: -15px;
margin-left: 1px;
left: 100%;
z-index: 1;
}
.breadcrumb li a::before {
content: " ";
display: block;
width: 0;
height: 0;
border-top: 15px solid transparent;
border-bottom: 15px solid transparent;
border-left: 15px solid white;
position: absolute;
top: 50%;
margin-top: -15px;
margin-left: 2px;
left: 100%;
z-index: 1;
}
.breadcrumb li:before {
content: "";
display: block;
width: 0;
height: 0;
border-top: 15px solid transparent;
/* Go big on the size, and let overflow hide */
border-bottom: 15px solid transparent;
border-left: 15px solid transparent;
position: relative;
left: 100%;
z-index: 2;
}
.breadcrumb li:last-child:before {
border-left: 0px solid hsla(34, 85%, 35%, 1) !important;
padding-left: 10px;
padding-right: 10px; }
.breadcrumb li:nth-child(8) {
background: rgb(221 221 221) !important;
}
.breadcrumb li:nth-child(8):before {
border-left-color: rgb(221 221 221) !important;
}
.breadcrumb li:nth-child(7) {
background: rgb(221 221 221) !important;
}
.breadcrumb li:nth-child(7):before {
border-left-color: rgb(221 221 221) !important;
}
.breadcrumb li:nth-child(6) {
background: rgb(221 221 221) !important;
}
.breadcrumb li:nth-child(6):before {
border-left-color: rgb(221 221 221) !important;
}
.breadcrumb li:nth-child(5) {
background: rgb(221 221 221) !important;
}
.breadcrumb li:nth-child(5):before {
border-left-color: rgb(221 221 221) !important;
}
.breadcrumb li:nth-child(4) {
background: rgb(221 221 221) !important;
}
.breadcrumb li:nth-child(4):before {
border-left-color: rgb(221 221 221) !important;
}
.breadcrumb li:nth-child(3) {
background: rgb(221 221 221) !important;
}
.breadcrumb li:nth-child(3):before {
border-left-color: rgb(221 221 221) !important;
}
.breadcrumb li:nth-child(2) {
background: rgb(221 221 221) !important;
}
.breadcrumb li:nth-child(2):before {
border-left-color: rgb(221 221 221) !important;
}
.breadcrumb li:nth-child(1) {
background: rgb(221 221 221) !important;
}
.breadcrumb li:nth-child(1):before {
border-left-color: hsla(34, 85%, 85%, 1) !important;
}
.border{
width: 100%
}
<ul class="breadcrumb">
<li> <a href="" class="shadow">Link with shadow</a></li>
<li> <a href="" class="shadow">Link with shadow</a></li>
<li> <a href="">Link without shadow</a></li>
<li> <a href="">Link without shadow</a></li>
<li> <a href="" class="shadow">Link with shadow</a></li>
</ul>
How can I select any li that has a class named shadow to be background red
This is what I tried but it's not working
Upvotes: 1
Views: 76
Reputation: 67505
There's no way to do this in CSS, Here's a JS solution by using querySelectorAll
to select all the anchors inside li with the class shadow
then loop through them and set the style to the parent li
:
var divs = document.querySelectorAll('li a.shadow'),
i;
for (i = 0; i < divs.length; ++i) {
divs[i].parentNode.setAttribute('style', 'background-color: red !important');
}
.breadcrumb {
margin: 20px;
list-style: none;
font: 15px Helvetica, Arial, Sans-Serif;
padding: 0;
display: flex;
}
.breadcrumb li {
border-top: 1px solid black;
border-bottom: 1px solid black;
border-left: 1px solid white;
color: black !important;
text-decoration: none;
background: brown;
/* fallback color */
background: hsla(34, 85%, 35%, 1);
position: relative;
display: flex;
align-items: center;
}
.breadcrumb li:nth-child(2) {
background: rgb(221 221 221) !important;
border-left: 1px solid black !important;
}
.breadcrumb li:last-child {
background: rgb(221 221 221) !important;
border-right: 1px solid black !important;
}
.breadcrumb a,
.breadcrumb a:link,
.breadcrumb a:visited,
.breadcrumb a:active {
color: #212121;
margin: 0 0px;
}
.breadcrumb li span::before {
content: " ";
display: block;
width: 0;
height: 0;
border-top: 15px solid transparent;
border-bottom: 15px solid transparent;
border-left: 15px solid white;
position: absolute;
top: 50%;
margin-top: -15px;
margin-left: 1px;
left: 100%;
z-index: 1;
}
.breadcrumb li a::before {
content: " ";
display: block;
width: 0;
height: 0;
border-top: 15px solid transparent;
border-bottom: 15px solid transparent;
border-left: 15px solid white;
position: absolute;
top: 50%;
margin-top: -15px;
margin-left: 2px;
left: 100%;
z-index: 1;
}
.breadcrumb li:before {
content: "";
display: block;
width: 0;
height: 0;
border-top: 15px solid transparent;
/* Go big on the size, and let overflow hide */
border-bottom: 15px solid transparent;
border-left: 15px solid transparent;
position: relative;
left: 100%;
z-index: 2;
}
.breadcrumb li:last-child:before {
border-left: 0px solid hsla(34, 85%, 35%, 1) !important;
padding-left: 10px;
padding-right: 10px;
}
.breadcrumb li:nth-child(8) {
background: rgb(221 221 221) !important;
}
.breadcrumb li:nth-child(8):before {
border-left-color: rgb(221 221 221) !important;
}
.breadcrumb li:nth-child(7) {
background: rgb(221 221 221) !important;
}
.breadcrumb li:nth-child(7):before {
border-left-color: rgb(221 221 221) !important;
}
.breadcrumb li:nth-child(6) {
background: rgb(221 221 221) !important;
}
.breadcrumb li:nth-child(6):before {
border-left-color: rgb(221 221 221) !important;
}
.breadcrumb li:nth-child(5) {
background: rgb(221 221 221) !important;
}
.breadcrumb li:nth-child(5):before {
border-left-color: rgb(221 221 221) !important;
}
.breadcrumb li:nth-child(4) {
background: rgb(221 221 221) !important;
}
.breadcrumb li:nth-child(4):before {
border-left-color: rgb(221 221 221) !important;
}
.breadcrumb li:nth-child(3) {
background: rgb(221 221 221) !important;
}
.breadcrumb li:nth-child(3):before {
border-left-color: rgb(221 221 221) !important;
}
.breadcrumb li:nth-child(2) {
background: rgb(221 221 221) !important;
}
.breadcrumb li:nth-child(2):before {
border-left-color: rgb(221 221 221) !important;
}
.breadcrumb li:nth-child(1) {
background: rgb(221 221 221) !important;
}
.breadcrumb li:nth-child(1):before {
border-left-color: hsla(34, 85%, 85%, 1) !important;
}
.border {
width: 100%
}
<ul class="breadcrumb">
<li> <a href="" class="shadow">Link with shadow</a></li>
<li> <a href="" class="shadow">Link with shadow</a></li>
<li> <a href="">Link without shadow</a></li>
<li> <a href="">Link without shadow</a></li>
<li> <a href="" class="shadow">Link with shadow</a></li>
</ul>
Upvotes: 2
Reputation: 721
first, you can define .red-background
that contains background-color
in your CSS, after that you can iterate all HTML objects that have .shadow
class name using js and add your .red-background
class :
let elements_with_shadow_class = document.getElementsByClassName("shadow");
for(let element of elements_with_shadow_class){
element.classList.add("red-background");
}
Upvotes: 0