CSS伪类选择器

简介: CSS伪类选择器

前言


在我们之前的介绍中提到了CSS中的几种选择器其中就有伪类选择器,那么这篇文章就给大家介绍一下这种独特的选择器。


在学习过程中总觉得基础巩固不好,那有可能就是理论没有得到很好的实践,亲自将代码实现出来才能更容易掌握所学,比如刷题就是一个很好的选择,边学边练,学完即练!

牛客网

https://www.nowcoder.com/exam/oj?page=1&tab=HTML/CSS&topicId=260&fromPut=pc_csdncpt_wlxfd_qianduan


静态伪类选择器


该选择器只能用于链接,它的属性有link和visited,其中link属性表示连接被访问之前,visited表示连接被访问之后。


举个栗子~

我们访问两个网站,对比一下网站在被访问之前和被访问之后在浏览器中默认情况下呈现的样子:

10b09fc27e9f4279a4da9ad46cfaabfb.png


我们可以看到访问前后的链接颜色发生改变,那么如何把链接在被访问之前和被访问之后的颜色设定一个指定的颜色呢,这就需要用到静态伪类了。


<head>
    <meta charset="utf-8">
    <title>静态伪类选择器</title>
    <style type="text/css">
    a:link{
      color:green;
    }/*链接被访问之前的样子*/
    a:visited{
     color: #00BFFF;
    }/*链接被访问后的样子*/
    </style>
  </head>
  <body>
    <a href="https://www.baidu.com">百度</a>
    <a href="https://www.bilibili.com/">B站</a>
  </body>

b87a25fe6f044aa1a83df1f79867da8c.png


了。

可能这时候就有疑问了,既然可以更改链接被访问前后的颜色,那么字体可以改变吗?我们再举个栗子,上代码:


a:visited{
     color: #00BFFF;
     font-size: 20px;
    }


运行结果:

ff15626396924496a2ba750fc7ab9232.png


假如我们想要将链接被访问后的字体大小做更改,发现是没有任何变化的,这是因为保护隐私。如果我们要改变链接被访问之前的字体大小,会出现什么呢?


a:link{
      color:green;
      font-size: 50px;
      /*链接访问之前的样子*/
    }


b4a759621ed54e739320d7c3fdcb31c6.png

我们发现无论是访问前的还是访问后的链接,字体都发生改变。


动态伪类选择器


动态伪类的取值有:

hover “悬停”:鼠标放到标签上的时候

:active “激活”: 鼠标点击标签,但是不松手时。


<head>
    <meta charset="utf-8">
    <title>动态伪类</title>
    <style type="text/css">
      h1:hover{
        color: #00BFFF;font-size: 50px;
      }
    </style>
  </head>
  <body>
    <h1>百度</h1>
    <h2>百度</h2>
  </body>

a2d94692349e44b9830fa33b68b2d5f8.png

<head>
    <meta charset="utf-8">
    <title>动态伪类</title>
    <style type="text/css">
      h1:hover{
        color: #00BFFF;font-size: 50px;
      }
      /*:hover鼠标悬停出现的效果*/
      h3:active{
        color: red;font-size: 70px;
      }
      /*:active鼠标点击不松开出现的效果*/
    </style>
  </head>
  <body>
    <h1>百度</h1>
    <h2>百度</h2>
    <h3>百度</h3>
  </body>

5100476cad774b9cb5864cf176ecace2.png

结构伪类选择器


<head>
    <meta charset="utf-8">
    <title>结构伪类选择器</title>
    <style type="text/css">
    li:first-child{
      color: #87CEEB;
      font-size: 35px;
    }
    /*first-childy用来定位一组兄弟元素中第一个元素*/
    li:last-child{
      color: #008000;
      font-size: 53px;
    }
    /*last-child用定位一组兄弟元素中的最后一个元素*/
    </style>
  </head>
  <body>
    <ul>
      <li>春眠不觉晓</li>
      <li>处处闻啼鸟</li>
      <li>夜来风雨声</li>
      <li>花落知多少</li>
    </ul>
  </body>

98f3c57136f349d79cd9c3c598e8eb75.png


另外,nth-child(n)还可以选定第n个元素,比如:


li:nth-child(3){
      color: pink;
      font-size: 60px;
                }

7719bfb5f0d0408e98f581a8242ae082.png


li:nth-child(odd):表示选定排在奇数的li

li:nth-child(even)表示排在偶数的li


<style type="text/css">
    /*
    li:first-child{
      color: #87CEEB;
      font-size: 35px;
    }
    li:last-child{
      color: #008000;
      font-size: 53px;
    }
    li:nth-child(3){
      color: pink;
      font-size: 60px;
    }
    */
    li:nth-child(odd){
      color: #20B2AA;
      font-size: 35px;
    }
    li:nth-child(even){
      color: #9ACD32;
      font-size: 25px;
    }
    </style>
  </head>
  <body>
    <ul>
      <li>春眠不觉晓</li>
      <li>处处闻啼鸟</li>
      <li>夜来风雨声</li>
      <li>花落知多少</li>
    </ul>
  </body>


only-child:表示只选中只有一个子元素的父元素


<style type="text/css">
    .post p:only-child{
      color: #7FFFD4;
      font-size: 25px;
      background-color: pink;
    }
    .post p{
      color: #0000FF;
      font-size: 10px;
      background-color: plum;
    }
    </style>
  </head>
  <body>
    <div class="post">
      <p>山有木兮木有枝</p>
      <!--只有一个子元素-->
    </div>
    <div class="post">
      <p>枕上诗书闲处好</p>
      <p>门前风景雨来佳</p>
    </div>
  </body>

fa79989ea4ee4d27b187334e6efdf401.png


only-of-type:是表示一个元素他有很多个子元素,而其中只有一种类型的子元素是唯一的,使用“:only-of-type”选择器就可以选中这个元素中的唯一 一个类型子元素。

比如我们选择div容器中中唯一的一个div标签,并更改它的背景色:


<title>伪类选择器5</title>
    <style type="text/css">
    .demo > div:only-of-type{
      background-color: #00BFFF;
    }
    </style>
  </head>
  <body>
    <div class="demo">
    <a href="https://www.baidu.com">百度</a>
    <div>我是唯一一个不一样的元素</div>
    <a href="https://www.bilibili.com">B站</a>
    </div>
  </body>

cddbe01352d44bad808fe94d23c022f4.png


UI伪类选择器


:enabled和:disabled这两个伪类选择器。


<style type="text/css">
    :enabled{
      color: #008000;
      border: 2px green solid;
    }
    :disabled{
      color: red;
      border: 2px red solid;
    }
    </style>
  </head>
  <body>
    <form>
      <p>
      <label for="enable">可用</label>
      <input type="text" value="可用" size="3"  />
      </p>
      <label for="disabled">禁用</label>
      <input type="text" value="禁用" size="3" disabled />
      <p>
      <button>可用按钮</button>
         </p>
      <button disabled>禁用按钮</button>
    </form>
  </body>

0cd4868e47ef49229d59ad410ea39133.png


:checked伪类选择器适用于单选框、复选框以及下拉列表。可以通过:checked伪类选择器设置当选项被选中之后的样式。


<head>
    <meta charset="utf-8">
    <title>伪类选择器7</title>
    <style type="text/css">
    :checked+span{
            color: orange;
            background-color: grey;
          }
    </style>
  </head>
  <body>
    <form>
    <input type="radio" value="boy" name="child"  /><span>男孩</span>
    <br/>
    <input type="radio" value="girl"name="child" /><span>女孩</span>
    </form>
  </body>


4e737236a2a64370bfdf2d4e610a3e15.png

required选择器和:optional选择器,这两个选择器适用于必选和可选的元素。


<head>
    <meta charset="utf-8">
    <title></title>
    <style type="text/css">
    :required {
            outline: 1px solid red;
          }
          :optional {
            outline: 1px solid green;
          }
        </style>
    </head>
    <body>
      <form>
        <p>
          <label for="required">必填:</label>
          <input type="text" name="required" required>
        </p>
        <p>
          <label for="optional">选填:</label>
          <input type="text" name="optional">
        </p>
        <button type="submit">提交</button>
      </form>
  </body>

1fc957d2d7a9425e9bcc14fa17e8f5bd.png


相关文章
|
3月前
|
前端开发
CSS:高级选择器
CSS:高级选择器
45 1
|
3月前
|
前端开发 JavaScript
CSS:基础选择器
CSS:基础选择器
50 1
|
29天前
|
前端开发 JavaScript UED
深入理解与应用 CSS 伪类选择器
【10月更文挑战第23天】通过以上对 CSS 伪类选择器的深入探讨,我们可以更好地理解和应用它们,为网页设计和开发带来更丰富、更灵活的样式效果。同时,要注意在实际应用中根据具体情况合理选择和使用伪类选择器,以达到最佳的设计效果和用户体验。
34 2
CSS3 新增伪类有那些
CSS3 引入了多种新伪类,增强了样式控制的灵活性。新增的结构伪类如 `:nth-child(n)` 和 `:first-of-type` 可以根据元素的位置和类型进行选择;状态伪类如 `:enabled` 和 `:checked` 则根据元素的状态进行选择;动态伪类如 `:hover` 和 `:active` 则基于用户的交互行为。这些伪类让样式定制更加多样和强大。
|
3月前
|
前端开发 JavaScript 容器
谁动了我的选择器?深入理解CSS选择器优先级
该文章详细解释了CSS选择器的工作原理,包括不同种类选择器的权重计算规则,并通过实例说明了如何解决样式冲突问题,确保所需的样式能够正确应用到目标元素上。
|
3月前
|
前端开发
前端基础(四)_CSS层叠样式表_什么是css_css样式的引入方式_样式表的优先级_样式选择器
本文详细介绍了CSS(层叠样式表)的基本概念、语法规则、引入方式、样式表的优先级和样式选择器。文章解释了CSS的作用,展示了如何在HTML中通过行内样式、内部样式和外部样式引入CSS,讨论了不同CSS选择器的优先级和如何确定最终的样式应用。此外,还强调了使用`!important`规则时的优先级高于行内样式。
91 1
|
2月前
|
前端开发
运用CSS伪类与属性,巧妙实现背景图片旋转效果
运用CSS伪类与属性,巧妙实现背景图片旋转效果
35 0
|
2月前
|
前端开发
CSS常见的选择器
CSS常见的选择器
21 0
|
3月前
|
前端开发 JavaScript
【CSS】选择器
【CSS】选择器
|
4月前
|
前端开发
CSS3选择器
【8月更文挑战第23天】CSS3选择器。
32 1