伪类选择器(:link :visited :hover :avtive Xnth-child(n) X: first-child X: last-child X:nth-of-type(n)...)

1. :link :visited :hover :avtive

a:link {color:#FF0000;} /* 未访问的链接 */
a:visited {color:#00FF00;} /* 已访问的链接 */
a:hover {color:#FF00FF;} /* 鼠标划过链接 */
a:active {color:#0000FF;} /* 已选中的链接 */

顺序要求:

- 在CSS定义中,a:hover要放在a:link和a:visited之后才有效;

- a:active要放在a:hover后面才有效,需要严格按顺序才能看到效果

2.结构性伪类选择器:

X:nth-child(n):选择所有 p 元素的父元素的第n个子元素

  "n"可以是数字1、2、3、4...,也可以是表达式2n、2n+1、-n+3等,还可以是关键词odd/even。
  p:nth-child(n){background:green}  表示p父元素中的第n个元素(且为p)
  p:nth-child(odd){background:red}/*匹配奇数行*/
  p:nth-child(even){background:red}/*匹配偶数行*/
  p:nth-child(2n){background:red}/*选择器中的n为一个表达式时,其中n是从0开始计算,当表达式的值为0或小于0的时候,不选择任何匹配的元素。*/
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        p{
     
     
            border: 1px solid orange;
            height: 15px;
            width: 100px;
            font-size: 12px;
        }
        p:nth-child(1){
     
     
            background: green;
        }
    </style>
</head>
<body>
    <div>
        <p>p1</p>
        <p>p2</p>
        <p>p3</p>
        <p>p4</p>
        <p>p5</p>
        <p>p6</p>
        <p>p7</p>
        <p>p8</p>
        <p>p9</p>
        <p>p10</p>
    </div>
</body>
</html>

在这里插入图片描述

  • nth-child选择器在计算子元素是第几个元素时,是连同所有父元素中所有子元素一起计算的。
    在这里插入图片描述

此代码演示效果:(span是第一个元素,但是代码中匹配的时p,因此最终未选中任何元素)
在这里插入图片描述

X:first-child: 选择器匹配其父元素中的第一个子元素。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        p{
     
     
            border: 1px solid orange;
            height: 15px;
            width: 100px;
            font-size: 12px;
        }
        span:first-child{
     
     
            background: green;
        }
    </style>
</head>
<body>
    <div>
        <span>div的第一个子元素为span标签</span>
        <p>p1</p>
        <p>p2</p>
        <p>p3</p>
        <p>p4</p>
        <p>p5</p>
        <p>p6</p>
        <p>p7</p>
        <p>p8</p>
        <p>p9</p>
        <p>p10</p>
    </div>
</body>
</html>

在这里插入图片描述

X:last-child:匹配父元素中最后一个X元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        p{
     
     
            border: 1px solid orange;
            height: 15px;
            width: 100px;
            font-size: 12px;
        }
        p:last-child{
     
     
            background: green;
        }
    </style>
</head>
<body>
    <div>
        <span>div的第一个子元素为span标签</span>
        <p>p1</p>
        <p>p2</p>
        <p>p3</p>
        <p>p4</p>
        <p>p5</p>
        <p>p6</p>
        <p>p7</p>
        <p>p8</p>
        <p>p9</p>
        <p>p10</p>
    </div>
</body>
</html>

在这里插入图片描述

X:nth-last-child(n):从最后一个开始算索引

 p:nth-last-child(4){
    
    
            background: green;
        }

在这里插入图片描述

X:only-child(n):选择器匹配属于父元素中唯一子元素的元素。

在这里插入图片描述

X:nth-of-type(n):匹配同类型中的第n个同级兄弟元素。

在这里插入图片描述

X:first-of-type:匹配元素其父级是特定类型的第一个子元素。

p:first-of-type
{
    background:#ff0000;
}
/*选择的 p 元素是其父元素的第一个 p 元素,和 :nth-of-type(1) 是一个意思。*/

在这里插入图片描述

X:last-of-type:匹配其父级的最后一个特定类型为X的子元素。

/*指定其父级的最后一个p元素的背景色*/
p:last-of-type
{
background:#ff0000;
}

在这里插入图片描述

X:nth-last-of-type(n):匹配同类型中的倒数第n个同级兄弟元素。

在这里插入图片描述

X:only-of-type:这个元素没有其他相同类型的兄弟元素。

在这里插入图片描述
在这里插入图片描述
方便记忆(两组):

X:nth-child(n)
X: first-child
X: last-child
X: nth-last-child(n)
X: only-child

X: nth-of-type(n)
X: first-of-type
X: last-of-type
X: nth-last-of-type(n)
X: only-of-type

猜你喜欢

转载自blog.csdn.net/qq_43812504/article/details/110817212