CSS伪类

伪类是 W3C
制定的一套选择器的特殊状态,通过伪类您可以设置元素的动态状态,例如悬停(hover)、点击(active)以及文档中不能通过其它选择器选择的元素(这些元素没有
ID 或 class 属性),例如第一个子元素(first-child)或者最后一个子元素(last-child)。

伪类的名称不区分大小写,但需要以冒号:开头。另外,伪类需要与 CSS 中的选择器结合使用,语法格式如下:

selector:pseudo-class {
property: value;
}

其中 selector 为选择器名称,pseudo-class 为伪类的名称。

CSS 中提供了各种各样的伪类,如下表所示:

选择器例子例子描述
:activea:active匹配被点击的链接
:checkedinput:checked匹配处于选中状态的 元素
:disabledinput:disabled匹配每个被禁用的 元素
:emptyp:empty匹配任何没有子元素的

元素

:enabledinput:enabled匹配每个已启用的 元素
:first-childp:first-child匹配父元素中的第一个子元素

必须是父元素中的第一个子元素

:first-of-typep:first-of-type匹配父元素中的第一个

元素

:focusinput:focus匹配获得焦点的 元素
:hovera:hover匹配鼠标悬停其上的元素
:in-rangeinput:in-range匹配具有指定取值范围的 元素
:invalidinput:invalid匹配所有具有无效值的 元素
:lang(language)p:lang(it)匹配每个 lang 属性值以 “it” 开头的

元素

:last-childp:last-child匹配父元素中的最后一个子元素

必须是父元素中的最后一个子元素

:last-of-typep:last-of-type匹配父元素中的最后一个

元素

:linka:link匹配所有未被访问的链接
:not(selector):not§匹配每个非

元素的元素

:nth-child(n)p:nth-child(2)匹配父元素中的第二个子元素

:nth-last-child(n)p:nth-last-child(2)匹配父元素的倒数第二个子元素

:nth-last-of-type(n)p:nth-last-of-type(2)匹配父元素的倒数第二个子元素

:nth-of-type(n)p:nth-of-type(2)匹配父元素的第二个子元素

:only-of-typep:only-of-type匹配父元素中唯一的

元素

:only-childp:only-child匹配父元素中唯一的子元素

:optionalinput:optional匹配不带 “required” 属性的 元素
:out-of-rangeinput:out-of-range匹配值在指定范围之外的 元素
:read-onlyinput:read-only匹配指定了 “readonly” 属性的 元素
:read-writeinput:read-write匹配不带 “readonly” 属性的 元素
:requiredinput:required匹配指定了 “required” 属性的 元素
:rootroot匹配元素的根元素,在 HTML 中,根元素永远是 HTML
:target#news:target匹配当前活动的 #news 元素(单击包含该锚名称的 URL)
:validinput:valid匹配所有具有有效值的 元素
:visiteda:visited匹配所有已经访问过的链接

前面在介绍《链接》时我们已经简单介绍了 :link、:visited、:active 和 :hover
几个伪类的使用,这里不再重复介绍,下面我们再来介绍几个比较常用的伪类。

1、first-child

伪类 first-child 能够匹配指定父元素下的第一个子元素,例如ul li:first-child能够匹配<ul>元素下的第一个`

  • `元素,示例代码如下:
    <!DOCTYPE html>
    
    <html>
    
    <head>
    
        <style>
    
            ul li:first-child {     /*匹配<ul>下的第一个<li>标签*/
    
                color: red;
    
            }
    
        </style>
    
    </head>
    
    <body>
    
        <ul>
    
            <li>CSS定位</li>
    
            <li>CSS元素堆叠</li>
    
            <li>CSS浮动</li>
    
        </ul>
    
    </body>
    
    </html>
    
  • 运行结果如下图所示:

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
    图:first-child 伪类

    2、last-child

    与 first-child 类似,伪类 last-child 能够匹配指定父元素下的最后一个子元素,例如ul li:last-child能够匹配`

    • `元素下的最后一个`
    • `元素,示例代码如下:
      <!DOCTYPE html>
      
      <html>
      
      <head>
      
          <style>
      
              ul li:last-child {      /*匹配<ul>下的最后一个<li>标签*/
      
                  color: red;
      
              }
      
          </style>
      
      </head>
      
      <body>
      
          <ul>
      
              <li>CSS定位</li>
      
              <li>CSS元素堆叠</li>
      
              <li>CSS浮动</li>
      
          </ul>
      
      </body>
      
      </html>
      

    运行结果如下图所示:

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
    图:last-child 伪类

    3、nth-​​child

    伪类 nth-​​child 是 CSS3 中新增的,它可以匹配指定元素下的第 n 个子元素,例如ul li:nth-child(2)能够匹配`

    • `元素下的第二个`
    • `元素,示例代码如下:
      <!DOCTYPE html>
      
      <html>
      
      <head>
      
          <style>
      
              ul li:nth-child(2) {    /*匹配<ul>下的第二个<li>标签*/
      
                  color: red;
      
              }
      
          </style>
      
      </head>
      
      <body>
      
          <ul>
      
              <li>CSS定位</li>
      
              <li>CSS元素堆叠</li>
      
              <li>CSS浮动</li>
      
          </ul>
      
      </body>
      
      </html>
      

    运行结果如下图所示:

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
    图:nth-​​child 伪类

    原文地址CSS伪类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值