CSS的伪元素

伪类
通常用于对链接的不同状态以添加样式效果,他可以帮助我们根据链接的状态(访问前,访问后,鼠标悬停在链接上,链接被点击时但鼠标未松开)定义不同的样式

四种选择器:


link(链接访问前的样式),:vistited(链接访问后的样式),:hover(鼠标悬停在链接上的样式),:active(链接被激活时(鼠标左键按下但还未抬起)的样式)。

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

由于浏览器会将存储访问记录 所以通常显示的都是访问后的状态访问前的样式需要删除访问记录后正常显示

<style>
          #a1:link{
   color: blueviolet;
}
 
#a1:visited{
   color: rgb(0, 238, 255);
}
 
#a1:hover{
   color: green;
}
 
#a1:active{
   color: red;
}
    
    </style>

 

 

 


伪元素
是一种特殊的选择器,它可以在不改变 HTML 结构的情况下对页面元素的特定部分进行样式设置。一个选择器中只能使用一个伪元素,且必须紧跟在简单选择器之后。标准的做法是使用::来区分伪类和伪元素

::after:在元素内容之后插入内容

::before:在元素内容之前插入内容

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

 


注意事项

这四个选择器需要按照:link,:vistited,:hover,:active从前到后的顺序不能颠倒,否则可能会影响浏览器渲染


 在定义伪元素时,必须定义content属性; ,伪元素本身是行内元素,如果要定义为其配置宽高则需要定义display属性为 block;(转为块级元素)或者line-bolck(行内块元素)

### CSS 伪元素的使用方法与示例 CSS 伪元素通过 `::before` 和 `::after` 等语法,可以在不修改 HTML 结构的情况下,为页面元素添加额外的内容或装饰效果。以下是详细的使用方法和多个示例。 #### 基本使用 伪元素的基本语法如下: ```css selector::pseudo-element { property: value; } ``` 其中,`selector` 是目标 HTML 元素的选择器,`pseudo-element` 是伪元素名称(如 `::before` 或 `::after`),`property` 和 `value` 则是具体的样式属性及其值。 ##### 示例1:在标题后添加箭头 以下代码展示了如何使用 `::after` 在标题后添加一个红色箭头[^3]。 ```html <!DOCTYPE html> <html> <head> <style> h1::after { content: "→"; /* 必须写content属性 */ color: red; margin-left: 10px; } </style> </head> <body> <h1>这是一个标题</h1> </body> </html> ``` ##### 示例2:设置输入框占位符样式 通过伪元素 `::placeholder`,可以调整输入框占位符文本的样式[^2]。 ```css input::placeholder { color: gray; /* 设置颜色为灰色 */ font-style: italic; /* 设置字体为斜体 */ } ``` #### 高级应用 伪元素不仅可以用于简单的装饰,还可以结合动画、过渡、计数器等功能实现更复杂的效果。 ##### 示例3:鼠标悬停时显示遮罩层 以下代码展示了如何使用 `::before` 实现鼠标悬停时显示遮罩层的效果[^5]。 ```html <!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> .container { position: relative; width: 390px; height: 210px; background-color: pink; margin: 30px auto; } .container img { width: 100%; height: 100%; } .container::before { content: ''; display: none; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, .4); } .container:hover::before { display: block; } </style> </head> <body> <div class="container"> <img src="images/longxia.png" alt=""> </div> </body> </html> ``` ##### 示例4:动态功能实现 通过 `attr()` 函数,可以从 HTML 属性中提取内容并插入到伪元素中[^2]。 ```html <!DOCTYPE html> <html> <head> <style> a::after { content: attr(href); /* 插入链接地址 */ color: blue; margin-left: 10px; } </style> </head> <body> <a href="https://example.com">访问网站</a> </body> </html> ``` #### 注意事项 1. **content 属性**:对于 `::before` 和 `::after` 伪元素,`content` 属性是必需的。如果没有指定 `content` 属性,伪元素将不会显示。 2. **兼容性**:虽然现代浏览器普遍支持双冒号(`::`)的伪元素语法,但为了兼容性,一些开发者仍然使用单冒号(`:`)的语法。然而,根据 CSS3 的规范,建议使用双冒号。 3. **选择器限制**:伪元素必须紧跟在选择器之后,并且一个选择器中只能使用一个伪元素。 4. **样式限制**:某些 CSS 属性可能不适用于伪元素,因此在使用时需要特别注意。 ### 总结 CSS 伪元素提供了强大的功能,可以在不修改 HTML 结构的情况下,为页面元素添加额外的内容或装饰效果。通过合理使用伪元素,可以提升页面的美观性和交互性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值