first-child是css3中的控制器,意味着选择统计元素的第一个元素,但是今天在做网站的时候遇到first-child不起作用,于是就搜索了一下,找到了问题所在。
我们先看一个例子:
css代码:
|
1
2
3
4
|
<style>.dm p:first-child { background:#09C;color:#fff}.dm p:last-child { background:#09C;color:#fff}</style> |
html代码:
|
1
2
3
4
5
6
7
8
|
<div class="dm"><span>第一行</span><p>第二行</p><p>第三行</p><p>第四行</p><p>第五行</p><span>最后一行</span></div> |
上面运行的效果(请用支持css3的浏览器下打开):

如上述效果所示,这里面的first-child与last-child没有起到任何的作用。
先不说原因,我们把html代码改一下:
|
1
2
3
4
5
6
7
8
|
<div class="dm"><p>第一行</p><p>第二行</p><p>第三行</p><p>第四行</p><p>第五行</p><p>最后一行</p></div> |
再看一下效果:
上面运行的效果(请用支持css3的浏览器下打开):

怎么样,这次起作用了吧。
看到这两个的区别了吗?
第一个例子里的第一个标签和最后一个标签都是span,而我们寻找的first-child和last-child都是P,[如果父元素的第一个元素或者最后一个元素不是寻找的标签的话,会不起作用],这样说着有点拗口,按上面的例子来说如果父元素.dm寻找的first-child与last-child是P,如果不是P的话会不起作用,大家需要注意这一点。