伪类选择器

120 阅读2分钟

Hello,大家好!

我是Kiangkiang。从今天开始会把自己学的知识写成文章,一来是方便自己查阅,二来也希望对大家有帮助。文章内容可能不全,但是会慢慢补充。


伪类知识点:

   伪类(不存在的类,特殊的类)
            ·伪类用来描述一个元素的特殊状态
                比如:第一个子元素、被点击的元素、鼠标移入的元素...
            ·伪类一般情况下都是使用  “ :” 开头的
                :first-child 第一个子元素
                :last-child 最后一个子元素
                :nth-child() 选中第n个子元素
                    特殊值:
                        n 第n个  n的范围0~正无穷
                        2n 或 even   表示选中偶数位的元素
                        2n+1 或 odd  表示选中奇数位的元素

                -以上这些伪类都是根据所有的子元素进行排序


                :first-of-type
                :last-of-type
                :nth-of-type()

                    -这几个伪类的功能和上述的类似,不同点是他们是在同类型元素中进行排序

            ·:not()否定伪类
                -将符合条件的元素从选择器中去除

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <style>
    
        ul>li:first-child{
            color:aqua;
        }                           /* 第一个元素的颜色 */

        ul>li:last-child{
            color: rebeccapurple;
        }                           /* 最后一个元素的颜色 */

        ul>li:nth-child(2){
            color: red;
        }                           /* 第二个元素的颜色 */

        ul>li:nth-child(5){
            color: red;
        }                           /* 第五个元素的颜色 */
   </style>
</head>
<body>
    <!-- 简写形式:  ul>li*3 + "tab键" -->
    <ul>
        <li>第一</li>
        <li>第二</li>
        <li>第三</li>
        <li>第四</li>
        <li>第五</li>
        <li>第六</li>
    </ul>
</body>
</html>

运行结果:

image.png

接下来,我们改变一下上面ul标签里面的内容,css不变,如下:

<ul>
        <span>我是span标签也是第一个元素了!</span>
        <li>第一</li>
        <li>第二</li>
        <li>第三</li>
        <li>第四</li>
        <li>第五</li>
        <li>第六</li>
    </ul>

然后运行结果:

image.png

可以发现:css中第一个元素的青蓝色在这没体现出来,然后关注变成红色字可以发现,从第二变到第一,从第五变到第四了。(如果有点乱,可以直接对比两张图片)。

如果想要“第一”还是变成原来的 青蓝色 的话,那么我们需要用另外的知识点来实现,那就是上面说的:first-of-type,表示的就是某一类型中的第一个子元素,同样,还是举例说明:

html部分

<ul>
        <span>我是span标签也是第一个元素了!</span>
        <li>li元素的第一个元素</li>
        <li>li元素的第二个元素</li>
        <li>li元素的第三个元素</li>
        <li>li元素的第四个元素</li>
        <li>li元素的第五个元素</li>
        <li>li元素的第六个元素</li>  
</ul>

css部分

<style>
        ul>li:first-child{
            color:aqua;
        }                           /* 第一个元素的颜色 */

        ul>li:last-child{
            color: rebeccapurple;
        }                           /* 最后一个元素的颜色 */


        ul>li:nth-child(5){
            color: red;
        }                           /* 第五个元素的颜色 */

        ul>li:first-of-type{
            color:blue;
        }                           /* 表示li类型的第一个元素的颜色 */
        
</style>

运行结果:

image.png

可以发现,现在li的第一个元素变成蓝色了。

ok接下来我们再补充一下,如何使span标签和所有的li标签都变色?

只需要在css部分添加如下代码:

span,ul>li:nth-child(n){
            color:goldenrod;
    }                           /* 表示span标签和所有的li标签都变金色 */

运行结果:

image.png

okk,接下来就是最后一部分了,就是 :not 这个知识点如何用,是干嘛的?别慌,直接看代码和运行结果就知道是干嘛的了!(对比下面两张图的区别)

image.png

image.png