最新CSS3伪类和伪元素详解

news2024/9/23 11:27:57

第4章 伪类和伪元素

4.1结构伪类

E:first-child{},第一个元素

样式:

p:first-child {
    color: red; 
}
<div>
    <p>Lorem ipsum</p>
    <p>Dolor sit amet.</p>
</div>

4.1.1nth-*伪类

以计数为基础的,默认情况下,n代表从0开始的数字,以1递增(1,2,3等等),但是元素是从1开始的。

这里的*包括child和of-type等等

E:nth-*(n){},n表示1,2,3...

E:nth-*(2n){},n表示2,4,6...

E:nth-*(3n){},n表示3,6,9...

E:nth-*(n+1){},n表示1,2,3,4...

E:nth-*(2n+1){},n表示1,3,5...

E:nth-*(3n-1){},n表示2,5,8...

E:nth-*(even){},相当于2n,偶数

E:nth-*(odd){},相当于2n+1,奇数

nth-child与nth-of-type

E:nth-child表示按照当前父元素的所有子元素总数进行选择

E:nth-of-type表示按照特定元素进行选择

案例:

10个段落,CSS如下:

1.所有元素2n+1的底设为grey

2.div中的p中的2n字体设为红色

3.div中的p中的3n字体设为绿色

nth-last-child与nth-last-of-type

nth-child与nth-of-type类似,不同的是从最后一个元素开始计数。

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        div :nth-child(2n+1) {
            background-color: grey;
        }

        div p:nth-of-type(2n) {
            color: red;
        }

        div p:nth-of-type(odd) {
            color: green;
        }
    </style>
</head>

<body>
    <div>
        <span>span孙颖莎奥运已打52局</span>
        <p>王楚钦回应球拍事件:自己是受害者,“我不想讨论”</p>
        <p>王楚钦回应球拍事件:自己是受害者,“我不想讨论”</p>
        <p>王楚钦回应球拍事件:自己是受害者,“我不想讨论”</p>
        <p>王楚钦回应球拍事件:自己是受害者,“我不想讨论”</p>
        <p>王楚钦回应球拍事件:自己是受害者,“我不想讨论”</p>
        <span>span孙颖莎奥运已打52局</span>
        <p>王楚钦回应球拍事件:自己是受害者,“我不想讨论”</p>
        <p>王楚钦回应球拍事件:自己是受害者,“我不想讨论”</p>
        <p>王楚钦回应球拍事件:自己是受害者,“我不想讨论”</p>
        <p>王楚钦回应球拍事件:自己是受害者,“我不想讨论”</p>
        <p>王楚钦回应球拍事件:自己是受害者,“我不想讨论”</p>
    </div>

</body>

</html>

4.1.2 first-of-type、last-child、last-of-type

表示单个的选择,分别是某类型元素第一个,父元素中子元素最后一个,某类型元素最后一个。

4.1.1案例中,去掉CSS后,重写CSS:

1.p元素的第一个字体为red。

2.所有元素最后一个字体为green。

3.span类型最后一个元素字体为pink。

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        div p:first-of-type {
            color: red;
        }

        div :last-child {
            color: green;
        }

        div span:last-of-type {
            color: pink;
        }
    </style>
</head>

<body>
    <div>
        <span>span孙颖莎奥运已打52局</span>
        <p>王楚钦回应球拍事件:自己是受害者,“我不想讨论”</p>
        <p>王楚钦回应球拍事件:自己是受害者,“我不想讨论”</p>
        <p>王楚钦回应球拍事件:自己是受害者,“我不想讨论”</p>
        <p>王楚钦回应球拍事件:自己是受害者,“我不想讨论”</p>
        <p>王楚钦回应球拍事件:自己是受害者,“我不想讨论”</p>
        <span>span孙颖莎奥运已打52局</span>
        <p>王楚钦回应球拍事件:自己是受害者,“我不想讨论”</p>
        <p>王楚钦回应球拍事件:自己是受害者,“我不想讨论”</p>
        <p>王楚钦回应球拍事件:自己是受害者,“我不想讨论”</p>
        <p>王楚钦回应球拍事件:自己是受害者,“我不想讨论”</p>
        <p>王楚钦回应球拍事件:自己是受害者,“我不想讨论”</p>
    </div>

</body>

</html>

4.1.3 only-child,only-of-type

only-child表示没有任何兄弟元素

only-of-type表示没有相同类型的兄弟

4.2 其他伪类

4.2.1 target伪类

指向特定元素内部链接,URI指向唯一ID或指定锚点位置。

外部链接:

4.伪类target.html

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title></title>
</head>

<body>
    <a href="./4.target.html#my_id">Lorem</a>
</body>

</html>

同级目录下 4.target.html

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title></title>
</head>

<body>
    <h4>Lorem ipsum</h4>
    <h4>Lorem ipsum</h4>
    <h4>Lorem ipsum</h4>
    <h4>Lorem ipsum</h4>
    <h4>Lorem ipsum</h4>
    <h4>Lorem ipsum</h4>
    <h4>Lorem ipsum</h4>
    <h4>Lorem ipsum</h4>
    <h4>Lorem ipsum</h4>
    <h4>Lorem ipsum</h4>
    <h4>Lorem ipsum</h4>
    <h4>Lorem ipsum</h4>
    <h4 id="my_id" style="color: orange;">Lorem ipsum</h4>
    <h4>Lorem ipsum</h4>
    <h4>Lorem ipsum</h4>
</body>

</html>

将浏览器上下宽度小一点,必须有滚动条,则会发现页面跳转后,会自动滚动到目标位置。

内部链接:

点击前:

点击后:

代码:

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        .comment:target {
            background-color: #ddd;
        }
    </style>
</head>

<body>
    <p><a href="#comment-03">最后的评论</a></p>
    <div class="comment" style="border: 1px dotted;" id="comment-01">
        <p>Thanks for this scintillating example</p>
        <p>N.E. Boddy, April 13</p>
    </div>
    <div class="comment" style="border: 1px dotted;" id="comment-02">
        <p>Meh.</p>
        <p>Sum1, April 14</p>
    </div>
    <div class="comment" style="border: 1px dotted;" id="comment-03">
        <p>CSS3 is going to be great!</p>
        <p>Joe Blogs, April 14</p>
    </div>
</body>

</html>

4.2.2 empty伪类

选择没有子元素(包括文本节点)的元素

看案例:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        td:empty {
            background-color: red;
        }
    </style>
</head>
<body>
    <table border="">
        <thead>
            <tr>
                <td>第一列</td>
                <td>第二列</td>
                <td>第三列</td>
            </tr>
        </thead>
        <tr>
            <td></td>
            <td>Lorem ipsum</td>
            <td><span></span></td>
        </tr>
    </table>
</body>
</html>

4.2.3 root伪类与not伪类(基本不用,知道就行)

root伪类:给html一个较高的特殊度,设置html元素后不该被修改。

html:root { background-color: black }

not伪类:选择除了给定参数元素之外的所有元素。

E:not(F) {}

例子:div > :not(p) { color: red; }

4.3 伪元素

可以把样式应用到文档树中根本不存在的元素上。

::first-line 文本中的第一行

::first-letter 文本中的第一个字母

::after 元素之后添加

::before 元素之前

代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        p::first-line {
            background-color: red;
        }

        p::first-letter {
            color: blue;
            font-weight: 600;
        }

        h1::before {
            content: "我是h1前面的添加的内容";
            color: chocolate;
        }

        p::after {
            content: "我是P后面的内容";
            color: brown;
        }
    </style>
</head>
<body>
    <h1>|WWF's Mission Statement</h1>
    <p>To stop the degradation of the
        planet's natural environment
        and to build a future in which
        humans live in harmony with nature,
        by; conserving the world's biological diversity, ensuring that the use of renewable natural resources is
        sustainable, and promoting the reduction of pollution and wasteful consumption.|</p>
</body>
</html>

小结:UI元素状态,:selection冷门生僻,不学习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1993765.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

某赛通电子文档安全管理系统 CDGAuthoriseTempletService1 SQL注入漏洞复现(XVE-2024-19611)

0x01 产品简介 某赛通电子文档安全管理系统(简称:CDG)是一款电子文档安全加密软件,该系统利用驱动层透明加密技术,通过对电子文档的加密保护,防止内部员工泄密和外部人员非法窃取企业核心重要数据资产,对电子文档进行全生命周期防护,系统具有透明加密、主动加密、智能…

RPA在政务服务中的挑战与解决方案

随着数字化时代的到来&#xff0c;数字政务的建设已成必然趋势&#xff0c;RPA作为数字化转型的重要工具之一&#xff0c;能够帮助政府单位快速实现业务流程的自动化和智能化&#xff0c;提高工作效率和质量&#xff0c;为建设数字政务提供强有力的支持&#xff0c;因此正被越来…

深植根基、蓬勃向上 | openKylin 2.0正式发布!

2024年8月8日&#xff0c;openKylin 2.0版本正式发布&#xff01;该版本默认搭载Linux 6.6 LTS内核&#xff0c;完成180操作系统核心组件自主选型升级&#xff0c;深度融合AI技术&#xff0c;上线麒麟AI助手等实用AI功能&#xff0c;并为用户带来包括开明软件包格式、不可变系统…

Unity 在Editor下保存对Text组件的文本的修改

Unity 在Editor下保存对Text组件的文本的修改 /****************************************************文件&#xff1a;TimeStampForText.cs作者&#xff1a;lenovo邮箱: 日期&#xff1a;2024/8/8 1:9:21功能&#xff1a; *************************************************…

聚观早报 | 小米15 Ultra相机规格;一加Ace 5参数规格

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 8月8日消息 小米15 Ultra相机规格 一加Ace 5参数规格 iOS 18.1代码曝光 SK电讯加大AI投入 Figure 02 人形机器人…

【VScode】如何在anaconda虚拟环境中打开vscode项目

文章目录 【必备知识】打开anaconda虚拟环境切换到项目工作目录激活anaconda虚拟路径让vscode从当前目录打开 【必备知识】 anaconda环境变量配置及配置python虚拟环境 https://blog.csdn.net/xzzteach/article/details/140621596 打开anaconda虚拟环境 切换到项目工作目录 …

Ftrans文件摆渡方案:重塑文件传输与管控的科技先锋

一、哪些行业会用到文件摆渡相关方案 文件摆渡相关的产品和方案通常用于需要在不同的网络、安全域、网段之间传输数据的场景&#xff0c;主要是一些有核心数据需要保护的行业&#xff0c;做了网络隔离和划分。以下是一些应用比较普遍的行业&#xff1a; 金融行业&#xff1a;…

第 11 课:多方安全计算在安全核对的行业实践

业务背景&#xff1a;安全核对产生的土壤 产品方案&#xff1a;从试点到规模化的路 技术共建&#xff1a;与隐语的共同成长

three.js 空间坐标绘制多边形围栏(结合react)

空间坐标点绘制多边形&#xff0c;实际上可以理解为是由 “点” 到 “线” 到 “面” 的一个过程。将空间坐标点通过THREE.Shape绘制多条线并闭合而得到一个封闭的二维形状平面对象&#xff0c;使用THREE.ShapeGeometry将Shape对象转换为Geometry对象添加Mesh&#xff0c;最终得…

全国多地公布2024下半年软考报名具体时间

下半年开考科目&#xff1a; 高级资格&#xff1a;系统分析师、系统架构设计师、网络规划设计师、系统规划与管理师 中级资格&#xff1a;软件设计师、网络工程师、信息安全工程师、信息系统监理师、多媒体应用设计师、系统集成项目管理工程师 初级资格&#xff1a;网络管理…

【时时三省】(C语言基础)操作符2

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ——csdn时时三省 赋值操作符 它可以重新赋值 示例: 使用赋值操作符赋值 复合赋值符 &#xff0b;&#xff1d; -&#xff1d; &#xff0a;&#xff1d; /&#xff1d; &#xff05;&#xff1d; &g…

Linux磁盘管理_LVM逻辑卷_SWAP交换分区_Centos-LVM格式磁盘扩容

目录 一、基本磁盘管理1.1 创建分区1.2 创建文件系统1.3 挂载mount1.4 查看挂载信息1.5 重启失效解决方式 二、逻辑卷LVM2.1 LVM2.2 创建LVM2.3 扩大卷组VG2.4 命令汇总 三、交换分区SWAP管理3.1 SWAP3.2 查看swap3.3 增加交换分区 四、Centos调整分区&#xff0c;在线调整分区…

05 数据类型

目录 分类数值类型小数类型字符串类型日期和时间类型集合类型 1. 分类 2. 数值类型 tinyint create table t1 (num tinyint); insert into t1 values (1); insert into t1 values (128); – 越界插入&#xff0c;报错 select * from t1; 说明: 在mysql中&#xff0c;整形可以指…

LeetCode面试150——14最长公共前缀

题目难度&#xff1a;简单 默认优化目标&#xff1a;最小化平均时间复杂度。 Python默认为Python3。 目录 1 题目描述 2 题目解析 3 算法原理及代码实现 3.1 横向扫描 3.2 纵向扫描 3.3 分治 3.4 二分查找 参考文献 1 题目描述 编写一个函数来查找字符串数组中的最长…

MyBatis 基本操作 - 注解版

目录 一&#xff0c;查询 - select 1.1 全列查询 1.2 指定列查询 1.3 赋值问题 方法一&#xff1a;起别名 方法二&#xff1a;结果映射 方法三&#xff1a;添加配置 二&#xff0c;新增 - Insert 2.1 使用对象插入 2.2 获取主键 三&#xff0c;删除 - Delete 四&am…

使用Gitlab实现monorepo多项目CICD

CI/CD是什么 CI/CD&#xff08;Continuous Intergration/Continuous Delpoy&#xff09;&#xff0c;即持续集成/持续部署&#xff0c;或称为持续集成/持续交付&#xff0c;作为一套面向开发和运维团队的解决方案&#xff0c;CI/CD 主要解决集成新代码和向用户频繁交付应用的问…

SQL注入实例(sqli-labs/less-22)

0、初始页面 1、确定闭合字符 闭合字符为单引号双引号 2、爆库名 3、爆表名 4、爆列名 5、查询最终目标

初识redis:String类型

在Redis中的所有key都是字符串&#xff0c;而value的类型是存在差异的。本文介绍的就是value中的string类型。 首先要知道&#xff0c;Redis中的字符串&#xff0c;直接就是按照二进制数据的方式存储的&#xff0c;不会做任何的编码转换。也就是说&#xff0c;redis不仅仅可以…

JMeter——异步请求性能测试

前段时间任务要求要对一种异步请求做性能测试&#xff0c;异步请求步骤如下&#xff1a; step1: 发一个数据计算的请求&#xff0c;response里面返回一个jobId step2: 带上这个jobId&#xff0c;就可以实时查看这个请求返回的jobStatus, 如果jobStatus0, 则成功返回计算结果&…

29_反序列化漏洞、反序列化概念、反序列化原理、反序列化漏洞防御、序列化

概念 序列化和反序列化 序列化 将对象型转换成字符串的过程。 反序列化 将字符串还原成对象型的过程。 反序列化漏洞&#xff08;了解&#xff09; 便于传输和存储 接下来上代码进行测试&#xff0c;先搞个类&#xff0c; <?phpheader("content-type:text/html;…