Why Doesn't Nth-of-type Work On An Image Wrapped In An A Tag?
Solution 1:
Why doesn't
:nth-of-type()
work on an image wrapped in an<a>
tag?
It would, but since you're using :nth-child()
, and not :nth-of-type()
, I'll address that instead (though the answer is pretty much the same, regardless).
The problem you're facing is that your selector is selecting the wrong element, because the <img>
elements within .group3
are individually wrapped in <a>
elements, so img:nth-child(2)
can't match anything; had you tried img:nth-child(1)
, or img:first-child
, you'd see that both <img>
elements would have been successfully selected because they're both :nth-child(1)
and :first-child
within their respective parents.
So, to select the second <img>
element that appears within .group3
, we need to select via its parent, the <a>
:
.row3a:nth-child(2) img {
border: 1px solid green;
}
It's important to note that :nth-child()
does precisely what it tells you it does (in its very name); it selects an <img>
element if it is the :nth-child()
of its parent. As all the <img>
elements are individually wrapped in <a>
elements, none of those <img>
elements can be matched.
That means to select the second <img>
we need to select the only image (or potentially all the images), that are held within the actual second-child of the .row3
element, which is the <a>
.
References:
Post a Comment for "Why Doesn't Nth-of-type Work On An Image Wrapped In An A Tag?"