【CSS】P7 伪类选择器(动态伪类,结构伪类,否定伪类,UI伪类,目标伪类,语言伪类)
创始人
2025-05-30 03:56:59
0

这里写自定义目录标题

  • 伪类选择器
    • 什么是伪类
  • 动态伪类
    • 五个常用动态伪类
    • 常用动态伪类举例
    • 动态伪类的顺序关系
  • 结构伪类
    • 六个常用结构伪类
    • :first-child
    • :last-child
    • :nth-child()
    • :first-of-type
    • :last-of-type
    • :nth-of-type()
    • 几个不常用的结构伪类
  • 否定伪类
  • UI 伪类
  • 目标伪类
  • 语言伪类


伪类选择器

什么是伪类

伪类(Pseudo-Class): 伪类用于选择 HTML 元素的某个 状态 或特定的 位置

例如,动态伪类 中存在 :hover,用于选择元素在鼠标悬停时的 状态结构伪类 中存在 :first-child 用于选择元素作为父元素的第一个子元素的 状态

浅浅举个例子:



去百度去京东


动态伪类

五个常用动态伪类

a:link		/* 表示样式将应用于 HTML 中未被访问过的链接;*/
a:visited		/* 表示样式将应用于 HTML 中已被访问过的链接;*/
a:hover		/* 表示样式将应用于当用户将鼠标悬停在 HTML 中链接上时的状态;*/
a:active		/* 表示样式将应用于当用户点击 HTML 中链接时的状态;*/
select:focus		/* 表示样式将应用于当链接被选中或获得焦点时的状态;*/

常用动态伪类举例

a:link a:visited a:hover a:active


去百度去京东

上述代码产生效果为:链接未被访问时,呈现橙色效果,鼠标悬浮在链接上,呈现天蓝色效果,点击未松开,呈现绿色效果,访问后,呈现灰色效果;

select:focus input:focus





动态伪类的顺序关系

要注意的是,动态伪类之间存在有顺序关系,思考如下情形:

在我们点下 去百度 并不松开的时候,我们其实是同时处于以上几种状态中的三种::link :hover :active,而在 CSS 中,渲染存在覆盖效果;所以CSS中表现的样式是几种状态中最下方的状态,即若将 a:active 置于状态中的最下方,则会呈现点击未松开的绿色效果;


结构伪类

六个常用结构伪类

:first-child	/* 表示样式将应用于一个元素的第一个子元素 */
:last-child		/* 表示样式将应用于一个元素的最后一个子元素 */
:nth-child()	/*  表示样式将应用于某个元素的指定子元素 */
:first-of-type		/* 表示样式将应用于一个类型的元素中的第一个元素 */
:last-of-type		/* 表示样式将应用于一个类型的元素中的最后一个元素 */
:nth-of-type()		/* 表示样式将应用于一个类型的元素中的指定位置的元素 */

:first-child

:first-child


测试1

测试2

测试3

张三:98分

李四:88分

王五:78分

赵六:68分

结果展示:

在这里插入图片描述


:last-child

:last-child


测试1

测试2

测试3

张三:98分

李四:88分

王五:78分

赵六:68分

效果展示:

在这里插入图片描述


:nth-child()

:nth-child

/* 选择第二个子元素 */
:nth-child(2) {color: red;
}/* 选择奇数子元素 */
:nth-child(odd) {background-color: yellow;
}/* 选择奇数子元素 */
:nth-child(2n+1) {background-color: blue;
}/* 选择偶数子元素 */
:nth-child(even) {background-color: green;
}/* 选择偶数子元素 */
:nth-child(2n) {background-color: yellow;
}/* 选择从第三个子元素开始的子元素 */
:nth-child(n+3) {font-size: 1.2em;
}/* 选择前三个子元素 */
:nth-child(-n+3) {font-weight: bold;
}

举例:


第一个元素

第二个元素

第三个元素

第四个元素

第五个元素

第六个元素

第七个元素

第八个元素

第九个元素

第十个元素


:first-of-type

:first-of-style

/* 第一个段落元素 */
p:first-of-type {color: blue;
}/* 第一个 div 元素 */
div:first-of-type {background-color: yellow;
}/* 第一个 h2 元素 */
h2:first-of-type {font-size: 2em;
}

举例:


第一个元素

第二个元素

第三个元素

第四个元素

第五个元素

第六个元素


:last-of-type

/* 最后一个段落元素 */
p:last-of-type {color: blue;
}/* 最后一个 div 元素 */
div:last-of-type {background-color: yellow;
}/* 最后一个 h2 元素 */
h2:last-of-type {font-size: 2em;
}

:nth-of-type()

/* 选择第二个子元素 */
:nth-of-type(2) {color: red;
}/* 选择奇数子元素 */
:nth-of-type(odd) {background-color: yellow;
}/* 选择偶数子元素 */
:nth-of-type(even) {background-color: green;
}/* 选择从第三个子元素开始的子元素 */
:nth-of-type(n+3) {font-size: 1.2em;
}/* 选择前三个子元素 */
:nth-of-type(-n+3) {font-weight: bold;
}

几个不常用的结构伪类

/* 选择一个父元素中倒数第二个子元素 */
p:nth-last-child(2) {color: red;
}/* 选择一个与其同类型的兄弟元素中倒数第二个元素 */
p:nth-last-of-type(2) {color: red;
}/* 选择一个父元素中唯一的子元素 */
p:only-child {color: red;
}/* 选择一个父元素中唯一的子元素 */
p:only-child {color: red;
}/* 全局样式 */
:root {/* 全局样式 */
}html {/* 更具体的样式 */
}/* 选中的是没有内容的div元素 */
div:empty {background-color: #eee;
}
即:

否定伪类

/* 选择所有除了 class="highlight" 的段落元素 */
p:not(.highlight) {color: blue;
}/* 选择所有除了 id="footer" 的元素 */
*:not(#footer) {background-color: yellow;
}/* 选择所有除了 type="checkbox" 的表单控件 */
input:not([type="checkbox"]) {border: 1px solid gray;
}/* 选择所有除了 title 以"你要加油"开头的表单控件 */
div>p:not([type^="你要加油"]) {color: orange;
}

UI 伪类

:checked		/* 用于匹配已被选中的表单元素 */
:enable			/* 选择处于启用状态的表单元素 */
:disabled		/* 选择处于禁用状态的表单元素 */
input:checked {width: 100px;height: 100px;
}
input[type="text"]:enabled {background-color: gray;
}
input[type="text"]:disabled {background-color: gray;
}

目标伪类

:target		/* 用于选择当前页面中被 URL 中的片段标识符(#)指定的元素 */

举例:



:target Example

Section 1

Content of section 1 goes here...

Section 2

Content of section 2 goes here...

Section 3

Content of section 3 goes here...


语言伪类

:lang()		/* 选择使用特定语言属性的元素 */


:lang Example

This is a paragraph in English.

Ceci est un paragraphe en français.

Dies ist ein Absatz auf Deutsch.

This is another paragraph in English.


相关内容

热门资讯

首创证券拟赴港上市,“A+H”... 首创证券在A股上市不足三年便启动赴港上市计划。近日,首创证券公告称,公司董事会已审议通过了公司拟发行...
肥东杨大爷要帮“儿子”还钱,银... “儿子”在外借了2万元还不上 “要债人”电话直接打了过来 还?还是不还? 7月6日 肥东县公安局梁园...
A股上周16家上市公司公布并购... 转自:扬子晚报 扬子晚报网7月27日讯(记者 范晓林 薄云峰)近段时间以来,A股市场并购重组活跃度持...
独家|某股份行改动零售业务关键... 在资产端信贷“投不动”(多家行零售信贷增速连续几个季度放缓、更有甚者个贷投放负增长)、负债端存款“定...
四川五日游报团指南及详细行程,... 四川,这片位于中国西南的神奇土地,以其独特的自然风光、丰富的文化遗产和诱人的美食而闻名遐迩。从成都的...
原创 中... 在2025年4月初,时任美国总统的特朗普正式启动了针对世界各国的关税战,旨在通过实施经济制裁来促进美...
牛市主升浪开启了?别急!珍惜布... 本周,A股市场上行,主要宽基指数都收获了或多或少的周涨幅,其中,科创50、微盘股涨幅居前。板块方面,...
公募二季报两大看点!港股配置逼... 本报(chinatimes.net.cn)记者栗鹏菲 叶青 北京报道 2025年公募基金二季报披露收...
长和出售港口磋商期或延长 随着可能出现的各方介入及交易结构变化,此次长和港口出售交易如继续进行,其复杂性会提升 文 |《财经》...
中航重机涨0.17%,成交额4... 来源:新浪证券-红岸工作室 7月25日,中航重机涨0.17%,成交额4.14亿元,换手率1.52%,...
重仓电子和新能源行业 【深圳商报讯】(记者 陈燕青)基金二季报出炉,公募二季度依然重仓电子、新能源、食品饮料等行业。公募排...
大婚之后,大笔减持!昔日全球首... 当地时间7月25日,亚马逊公司提交至美国证券交易委员会的文件显示,前全球首富、亚马逊创始人杰夫·贝索...
创源股份涨2.32%,成交额3... 来源:新浪证券-红岸工作室 7月25日,创源股份涨2.32%,成交额3.50亿元,换手率8.32%,...
筹备登陆韩国综合股价指数!大韩... 近日,大韩造船(Daehan Shipbuilding)的首次公开募股(IPO)发行价最终确定为每股...
山东政商要情(7.21—7.2... 记者 王惠 1,2025年上半年山东GDP50046亿元 增长5.6% 7月21日,山东省统计局、国...
《法学基本概念导论》| 专研法... 导言 本书是对权利、义务、法律主体、法律规范、法律渊源、法律行为等法学基本概念(juristic f...
上海AI新动向:世界AI合作组... 在今日的天气状况下,上海迎来了阴到多云的天气,偶尔还有阵雨光顾,气温徘徊在27至31摄氏度之间,给市...
山鹰国际跌1.52%,成交额2... 来源:新浪证券-红岸工作室 7月25日,山鹰国际跌1.52%,成交额2.50亿元,换手率2.33%,...
马斯克擎天柱解决不了无「手」难... 新智元报道 编辑:英智 【新智元导读】马斯克说人形机器人是特斯拉的未来,可今年5000台的目标才刚...
开封警方回应网传“释永信相关警... 7月27日,开封市公安局官方微博回复网友评论时表示:“(网传释永信相关)通报是假的,请不要再传播,目...