• :绿叶现版本暂时不再更新维护,全新版本已经在开发中,新系列图书(暂时8本,后面再续)也将于12月后陆续出版,敬请期待~

3.2 结构伪类选择器(1)

一、结构伪类选择器

对于CSS3的结构伪类选择器,为了更好地让刚刚学习CSS3教程的新手能够理解,我把它们划分为了3大类。这一节,我们先来给大家讲解一下第1类结构伪类选择器。

结构伪类选择器(第1类)
选择器 说明
E:first-child 选择父元素的第一个子元素
E:last-child 选择父元素的最后一个子元素
E:nth-child(n) 选择父元素下的第n个元素或奇偶元素,n的值为“数字 | odd | even”
E:only-child 选择父元素中唯一的子元素(该父元素只有一个子元素)

这些结构伪类选择器都很好理解,下面我们通过几个实例让大家感受一下这些选择器的用法。

举例:

 
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head> 
    <title>CSS3结构伪类选择器</title>
    <style type="text/css">
        *{padding:0;margin:0;}
        ul
        {
            display:inline-block;
            width:200px;
            list-style-type:none;
        }
        ul li
        {
            height:20px;
        }
        ul li:first-child{background-color:red;}
        ul li:nth-child(2){background-color:orange;}
        ul li:nth-child(3){background-color:yellow;}
        ul li:nth-child(4){background-color:green;}
        ul li:last-child{background-color:blue;}
    </style>
</head>
<body>
    <ul>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
    </ul>
</body>
</html>

在浏览器预览效果如下:

分析:

想要实现同样的效果,很多人想到在li元素加上id或class属性来实现。但是这样会使得HTML结构id和class泛滥,不便于维护。使用结构伪类选择器,使得我们HTML结构非常清晰,结构与样式分离,便于维护,也更利于SEO。

上面这种使用结构伪类选择器的地方非常多,特别适合操作列表中列表项的不同样式。例如绿叶学习网首页的“helicopter的博客”列表中,列表项的排序数字背景颜色的不同就是使用结构伪类选择器来实现的。

举例:

 
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head> 
    <title>CSS3结构伪类选择器</title>
    <style type="text/css">
        *{padding:0;margin:0;}
        ul
        {
            display:inline-block;
            width:200px;
            border:1px solid gray;
            list-style-type:none;
        }
        ul li
        {
            height:20px;
            background-color:green;
        }
        /*设置偶数列颜色*/
        ul li:nth-child(even)
        {
            background-color:red;
        }
    </style>
</head>
<body>
    <ul>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
    </ul>
</body>
</html>

在浏览器预览效果如下:

分析:

隔行换色这种效果也很常见,例如表格隔行换色、列表隔行换色等,这些也是用户体验非常好的设计细节。其中绿叶学习网就用到了:nth-child()这个结构伪类选择器对列表进行隔行换色设置。

:本站所有教程均为原创,大部分已经与人民邮电出版社合作出版,禁止转载和抄袭,否则绿叶学习网和人民邮电出版社必将追究法律责任,附录:互联网著作权保护法。【法律顾问:张俊律师】

小伙伴们也可以加一下QQ群,在“群文件”中可以获取更多学习资源和配套资源,以及跟其他小伙伴交流,站长也在群内。

(1)QQ群:593173594(暗号:lvye

(2)绿叶学习网常见问题解答

回到顶部