CSS3基础——伪类选择符、伪元素的讲解和运用

一、伪类选择符

1、定义

伪类选择符是能被 CSS 支持的浏览器自动识别的特殊选择符,可视为特殊的类选择符 。其最大作用在于为链接的不同状态定义不同样式。伪类名称中的 “伪” ,源于它指定的并非文档中实际存在的对象,而是选择符或其相关对象的状态。不同于类选择符,伪类选择符不能随意命名。

伪类可以让用户在使用页面的过程中增加更多的交互效果,例如应用最为广泛的锚点标签 <a> 的几种状态(未访问链接状态、已访问链接状态、鼠标指针悬停在链接上的状态,以及被激活的链接状态),具体代码如下所示:

a:link {color:#FF0000;}    /*未访问的链接状态*/    
a:visited {color:#00FF00;}    /*已访问的链接状态*/    
a:hover {color:#FFO0FF;}    /*鼠标指针悬停到链接上的状态*/    
a:active {color:#0000FF;}    /*被激活的链接状态*/

 为了简化代码,可以把伪类选择符中相同的声明提出来放在 a 标签选择符当中

定义多种伪类选择符时,‘active’ 样式需写在 ‘hover’ 样式之后,否则可能失效

 2、伪类的理解

伪类可以理解为标签的四个内置动态属性:

:link  链接访问前的样式

:visited  链接访问后的样式

:hover  鼠标悬停在链接上的样式

:active  链接被激活时(鼠标左键按下但还未抬起)的样式

伪类只能在 CSS 配置,这四个伪类选择器通常一起使用,以创建具有丰富交互效果的链接和按钮

注:① :link,:visited,:hover,:active 这四个伪类从前到后的顺序不能颠倒,否则会影响浏览器的渲染

②有些浏览器对伪类的支持不太好,比如部分火狐浏览器无法支持 :active 属性(我们主要使用谷歌浏览器和 edge 浏览器

3、伪类选择符的运用

以 “百度” 为例,运用伪类选择器单击链接达到效果。

示例代码:

<!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>伪类选择器</title>
    <style>

        #a1:link{
            color: darkblue;
        }
        #a1:visited{
            color: crimson;
        }
        #a1:hover{
            color: aqua;
        }
        #a1:active{
            color: black;
        }
        


    </style>
</head>
<body>

    <a href="https://www.baidu.com/" id="a1">
        百度首页
    </a>

    <hr>

    <a href="https://www.baidu.com/" id="a2">
        百度一下
    </a>


</body>
</html>

运行结果: 

正如图中所示,当鼠标放在 “百度首页” 上时,百度首页会变成设置的颜色。

二、伪元素

1、定义

与伪类的方式类似,伪元素通过对插入文档中的虚构元素进行触发,从而达到某种特定效果。CSS的主要目的是给 HTML 元素添加样式,然而,在一些案例中给文档添加额外的元素是多余的或是不可能的。CSS 有一个特性是允许用户添加额外元素而不扰乱文档本身,这就是 “伪元素”。


伪元素语法的形式为:

选择符:伪元素 { 属性:属性值;}

2、伪元素的作用

伪元素作用
:first-letter将特殊的样式添加到文本的首字母    
:first-line将特殊的样式添加到文本的首行
:before在某元素之前插入某些内容
:after在某元素之后插入某些内容

3、伪元素的运用

示例代码:

<!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>伪元素选择器</title>

    <!-- 伪元素? —— 伪造的元素(假的元素,虚拟的元素) -->

    <style>

        ul li{
            /* 将无序列表前面默认的圆点标注去除 */
            list-style: none;
            width: 15%;
            height: 30px;
            background-color: green;
            border: 2px red solid;
        }
        ul::before{
            /* 下面这两句样式设置为固定语法,可以不做理解 */
            content: "";
            /* 让这个伪元素变成块元素 */
            display: block;
            list-style: none;
            width: 15%;
            height: 30px;
            background-color: blue;
            border: 2px rgb(180, 0, 0) solid;        
        }
        ul::after {
            content: "";
            display: block;

            width: 15%;
            height: 30px;
            background-color: rgb(76, 0, 255);
            border: 2px rgb(212, 42, 0) solid;        
        }

    </style>

</head>
<body>
    <ul>
        <!-- 这里有一个伪元素,叫做前置伪元素 -->
        <!-- <before></before> -->
        <li id="li1">
            <!-- <before></before> -->
            <!-- <after></after> -->
        </li>

        <li></li>
        <li></li>
        <!-- 这里有一个伪元素,叫做后置伪元素 -->
        <!-- <after></after> -->
    </ul>
</body>
</html>

运行结果: 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值