如你所知,我遇到了一个让你解决的问题
我扯掉了所有的头发,试图弄清楚为什么last-child
不起作用
我尝试使用border-right
移除last-child
但由于某些原因,它无法解决问题
Here's is the link
答案 0 :(得分:6)
您的选择器为#countdown .num:last-child
。
您的HTML
<ul ID="countdown">
<li> <div ID="days" class="num">00</div> <div CLASS="text">days</div> </li>
<li> <div ID="hours" class="num">00</div> <div CLASS="text">hours</div> </li>
<li> <div ID="mins" class="num">00</div> <div CLASS="text">minutes</div> </li>
<li> <div ID="secs" class="num">00</div> <div CLASS="text">seconds</div> </li>
<div class="clear"></div>
</ul>
想想:.num
是其父母的最后一个孩子吗?答:不。
您的选择器应该更像#countdown > li:last-of-type .num
,在.num
中的最后li
内选择#countdown
。
请注意,在这种情况下,必须使用last-of-type
而不是last-child
,因为您有<div class="clear"></div>
,这是无效的HTML(您不能拥有div
直接在ul
)内。
答案 1 :(得分:1)
last-child
无效的主要原因是#countdown
UL last-child
<div class="clear"></div>
不是LI
。因此,最好使用last-of-type
代替last-child
。像这样:
#countdown li:last-of-type .num,
#countdown li:last-of-type .text{
border:0;
}
答案 2 :(得分:0)
在ul
元素中,最后一个div
元素后面有一个li
元素。这是无效的标记,可能会产生不可预测的影响。此外,它可能使浏览器将div
元素视为ul
元素的最后一个子元素。