CSS扩展选择器

文章目录

  • 1. 并集选择器
  • 2. 交集选择器
  • 3. 后代选择器
  • 4. 子代选择器
  • 5. 兄弟选择器
    • 5.1. 相邻兄弟选择器
    • 5.2. 通用兄弟选择器
  • 6. 属性选择器
  • 7. 伪类选择器
    • 7.1. 动态伪类
    • 7.2. 结构伪类
    • 7.3. 否定伪类
  • 8. 伪元素选择器
  • 9. Google 改进案例

1. 并集选择器

选中多个选择器对应的元素。一般用来设置表格的边框。

语法:选择器 1, 选择器 2, 选择器 3, … 选择器 n {}

2. 交集选择器

同时选中符合条件的元素。

语法:选择器 1 选择器 2 选择器 3…选择器 n {}

3. 后代选择器

用来选择元素或元素组的后代,需要先写祖先,再写后代。

语法:选择器 1 选择器 2 选择器 3 … 选择器 n {}

4. 子代选择器

选中指定元素中,符合要求的子元素,父级标签写在前面,子级标签写在后面,中间有一个**>**。

语法:选择器 1 > 选择器 2 > 选择器 3 > … 选择器 n {}

5. 兄弟选择器

5.1. 相邻兄弟选择器

选中指定元素后,符合条件的相邻兄弟元素,二者是同一个父亲。

语法:选择器 1+选择器 2 {}

5.2. 通用兄弟选择器

选中指定元素后,符合条件的所有兄弟元素,只要是同一个父元素,都会被选择。

语法:选择器 1~选择器 2 {}

6. 属性选择器

选中具有某种属性的元素。

语法:

  1. [属性名] 选中具有某个属性的元素。
  2. [属性名=“值”] 选中包含某个属性,且属性值等于给定值的元素。
  3. [属性名^=“值”] 选中包含某个属性,且属性值以给定值开头的元素。
  4. [属性名$=“值”] 选中包含某个属性,且属性值以给定值结尾的元素。
  5. [属性名*=“值”] 选择包含某个属性,属性值包含给定值的元素
<!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>/* 需求:选择跟div相邻的p元素 设置成红色 *//* 方式一:通过属性选择器(通过属性名) */[data] {color: red;}/* 方式二:通过属性选择器(通过属性名=属性值) */[data="d1"] {color: green;}</style></head><body><div><span>我是span标签</span><p data="d1">我是带有属性的p标签</p></div><p>我是p标签</p><p data="d1">我是带有属性的p标签</p></body>
</html>

image-20240308231113649

7. 伪类选择器

选中特殊状态的元素 。

7.1. 动态伪类

伪类属性
:link超链接未被访问的状态
:visited超链接访问过的状态
:hover鼠标悬停在元素上的状态
:active元素激活的状态
:focus获取焦点的元素
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>07-CSS扩展选择器-伪类选择器</title><style>a,span {font-size: 50px;}a:link {color: red;}a:visited {color: green;}a:hover {color: blue;}a:active {color: yellow;}</style></head><body><a href="https://douglas.blog.csdn.net/">博客</a><span>文字</span></body>
</html>

QQ录屏20240308232306 -original-original

7.2. 结构伪类

伪类属性
:first-child所有兄弟元素中的第一个
:last-child所有兄弟元素中的最后一个
:nth-child(n)所有兄弟元素中的第 n 个(元素类型没有限制)
:first-of-type所有同类型兄弟元素中的第一个
:last-of-type所有同类型兄弟元素中的最后一个
:nth-of-type(n)所有同类型兄弟元素中的 第 n 个(元素类型有限制)
:root根元素

:nth-child(n) 选择第 n 个元素

选择多个

  • n 可以是一个数字

    从 1 开始,代表第 n 个元素

  • n 还可以是关键字
    odd 偶数 even 奇数

  • n 可以是一个公式
    an+ b 描述:a 代表一个循环的大小,N 是一个计数器(从 0 开始),以及 b 是偏移量

    • 2n+1 奇数
    • 2n 偶数
    • -n+3 前三个
    • n+4 第 4 个以后

语法区别
:nth-child(n)选择器匹配父元素中的第 n 个子元素,元素类型没有限制。
:nth-of-type(n)选择器匹配同类型中的第 n 个同级兄弟元素。

7.3. 否定伪类

:not(选择器) 排除满足括号中条件的元素。

8. 伪元素选择器

在 html 骨架中,并没有通过 html 标签去创建元素,而是通过 css 模拟出来的标签效果。

一般用在页面的非主体部分,某些情况下可以简化代码。

区别:

  • 普通元素:通过 html 标签生成的。
  • 伪元素:通过 css 模拟出来的标签效果。
  • 本质区别:是否在 html 中创建了新的标签。

常用的伪元素:

伪元素属性
::first-letter选中元素中的第一个文字
::first-line选中元素中的第一行文字
::placeholder选中输入框的提示文字
::before在元素最开始的位置,创建一个子元素(必须用 content 属性指定内容)
::after在元素最后的位置,创建一个子元素(必须用 content 属性指定内容)

9. Google 改进案例

使用动态伪类实现鼠标放在单词上变色。

QQ录屏20240308225446 -original-original

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>05-CSS扩展选择器-Google案例-改进</title><style>/* 设置颜色 */.c1 {color: blue;}.c2 {color: red;}.c3 {color: yellow;}.c4 {color: green;}/* 设置字体 */span {font-size: 100px;}span:hover {color: orange;cursor: pointer;}</style></head><body><span class="c1">G</span><span class="c2">o</span><span class="c3">o</span><span class="c1">g</span><span class="c4">l</span><span class="c2">e</span></body>
</html>

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

编程高级陷阱-破坏原有生态

今天聊点有意思的&#xff0c;昨天写了一个链表翻转&#xff0c;说一说里面大家会遇到的坑&#xff0c;具体可以看 教你三指针拿捏链表翻转-CSDN博客 有这样一个场景&#xff0c;给你一个单链表的头节点 head &#xff0c;请你判断该链表是否为回文链表。如果是&#xff0c;返回…

抖音获得抖音商品详情 API 返回值说明

抖音&#xff08;Douyin&#xff09;的商品详情API返回值通常会包含有关商品的详细信息。这些信息可能包括但不限于商品ID、商品名称、商品价格、商品图片、商品描述、商品销售属性等。以下是一个简化的抖音商品详情API返回值示例和说明&#xff1a; 调用链接获取详情 item_g…

复杂网络——半局部中心法

一、概述 由于最近写论文需要使用复杂网络知识中的半局部中心法&#xff0c;但是截止目前来说&#xff0c;网上几乎搜索不到有关的MATLAB程序代码&#xff0c;只有一篇用Python编写的程序&#xff0c;我的电脑中没有python&#xff0c;所以我花费一些时间&#xff0c;利用matla…

巴西交易所股票行情数据API接口

1. 历史日线 # Restful API https://tsanghi.com/api/fin/stock/BVMF/daily?token{token}&ticker{ticker}默认返回全部历史数据&#xff0c;也可以使用参数start_date和end_date选择特定时间段。 更新时间&#xff1a;收盘后3~4小时。 更新周期&#xff1a;每天。 请求方式…

【OceanBase诊断调优】—— 敏捷诊断工具obdiag一键分析OB集群日志设计与实践

最近总结一些诊断OCeanBase的一些经验&#xff0c;出一个【OceanBase诊断调优】专题&#xff0c;也欢迎大家贡献自己的诊断OceanBase的方法。 1. 前言 obdiag定位为OceanBase敏捷诊断工具。1.2版本的obdiag支持诊断信息的一键收集&#xff0c;光有收集信息的能力&#xff0c;…

Echo服务器学习__01(基础)

ASIO是一个跨平台&#xff0c;主要用于实现异步网络和其他一些底层I/O操作的C库 可以基于ASIO实现Echo服务端&#xff0c;在这之前&#xff0c;学习一些基础的知识和概念 ​ 1&#xff1a;IO多路复用 简单的来说&#xff0c;一个线程同时监听多个I/O事件就是I/O多路复用。任…

Python Learn day05

Python Learn day05 本文主要讲解 继承、多态、定制类 继承和多态 什么是继承 当新类想要拥有现有类的功能结构&#xff0c;可以使用继承。继承的前提是新类 is a 现有类&#xff0c;即&#xff1a; 子类 is 父类 总是从某个类继承&#xff1a; class Myclass(object):pass…

GaussDB数据库的索引管理

目录 一、引言 二、GaussDB数据库中的索引基本概念 1. 什么是GaussDB索引&#xff1f; 2. GaussDB索引的作用 三、GaussDB支持的索引类型 1. B-Tree索引 2. GIN索引 3. GiST索引 4. SP-GiST索引 四、创建和管理GaussDB索引 1. 创建索引 2. 删除索引 3. 索引的优化…

中兴通讯联手新疆移动,开通全疆首个乡农场景700M+900M双频双模基站

日前&#xff0c;在新疆博尔塔拉蒙古自治州&#xff0c;中兴通讯携手新疆移动共同完成了全疆首个乡农场景的700M900M双频双模基站建设&#xff0c;其通过采用“700M与900M共天馈共RRU设备”&#xff0c;成功实现乡农4/5G网络的同站址快速部署&#xff0c;为新疆的农牧业发展注入…

密码CTF

一、[SWPUCTF 2021 新生赛]crypto8——unencode编码 1.题目 73E-30U1&>V-H965S95]I<U]P;WE<GT 特征&#xff1a;有-&#xff0c;是uuencode编码&#xff0c;使用python脚本或者在线网站 二、[AFCTF 2018]Vigenre——维吉尼亚密码 1.题目&#xff1a; 给了一个…

中国联通全球无缝连接,畅享高速通信

中国联通&#xff0c;作为通信行业的领军企业&#xff0c;致力于为企业提供高效、稳定、安全的无线连接解决方案。我们依托覆盖全球的4G/5G网络和卫星连接服务&#xff0c;实现全球无缝连接&#xff0c;确保企业无论身处何地&#xff0c;都能畅享高速通信和数据传输体验。 一、…

【Git】Github 上commit后,绿格子contribution却不显示?不知道怎么弥补?解决方法在这里

github 上commit后&#xff0c;绿格子&#xff08;contribution&#xff09;却不显示 问题描述 今天一直在github上面commit代码&#xff0c;但是github中并没有显示自己的contribution&#xff08;没有绿色的格子&#xff09;&#xff0c;全是空白&#xff0c;网上一查是因为…