Maison > Article > interface Web > 关于CSS伪类选择器 - HotenHuang
#CSS伪类选择器
##使用css伪类选择器需要注意的
使用css的伪类选择器来选择某元素时,需要特别注意 :first-child 和 :nth-child(n) 等时,
网页渲染是从语句的后面开始读取的,也就是说,类似 p:first-child 这样的伪类选择器,指的是“某元素的以p元素作为第一子项的那项”,而不是“p元素的第一个子项”.
原因是因为,其实这里在p:之前,省略了 xxx & nbsp; 这几个字符,导致很容易产生误解。
e.g.
<span style="color: #000000;"> div p:first-child{color:red;} </span><span style="color: #0000ff;"><span style="color: #800000;">div</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">h1</span><span style="color: #0000ff;">></span>111<span style="color: #0000ff;"></span><span style="color: #800000;">h1</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">p</span><span style="color: #0000ff;">></span>222<span style="color: #0000ff;"></span><span style="color: #800000;">p</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">p</span><span style="color: #0000ff;">></span>333<span style="color: #0000ff;"></span><span style="color: #800000;">p</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"></span><span style="color: #800000;">div</span><span style="color: #0000ff;">></span></span></span></span></span>
这里的222字符不会变红,因为它不是div元素的以p元素为第一子项的那个元素,在这个例子中,div 元素以p元素作为第一子项是不成立的,没有任何一个元素符合这个条件,h1元素也不会响应color:red.
##用css伪类选择器去除带有边框的最后一个元素的办法
如果在设计一个导航栏时,每个元素之间有竖线相隔,通过伪类选择器可以很简洁地去除最后一个li元素的右边框线。
<span style="color: #000000;"> li{ border-right:1px red solid; } ul li:last-child{ border-right:none; }</span>
即可去除最右边的也就是最后一个li的有边框线,而不用额外给最后一个li取名。