当前位置: 首页 > news >正文

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.lryc.cn/news/319366.html

相关文章:

  • 知名Web3投资基金a16z合伙人Jane Lippencott确认出席Hack.Summit() 2024区块链开发者大会
  • 电脑那个部件坏了或者是哪个软件需要修复来看价钱
  • GiT: Towards Generalist Vision Transformer through Universal Language Interface
  • 纽约时报起诉OpenAI和微软将决定未来LLM的发展
  • IntelliJ IDEA 面试题及答案整理,最新面试题
  • T1.数据库MySQL
  • idea中database的一些用法
  • 外卖点餐系统 |基于springboot框架+ Mysql+Java+JSP技术+Tomcat的外卖点餐系统 设计与实现(可运行源码+设计文档)
  • 挑战杯 机器视觉的试卷批改系统 - opencv python 视觉识别
  • Node.js 自带的 http 模块来实现一个简单的本地服务器
  • c++ 设计模式模版方法
  • 踏上机器学习的征程:探索基础概念与学习模式
  • 基于YOLO的自动驾驶目标检测研究综述
  • 深度学习-解读GoogleNet深度学习网络
  • 【LeetCode: 2684. 矩阵中移动的最大次数 + dfs】
  • 第五节:使用SMB开发WebSocket通信
  • Nginx和Ribbon实现负载均衡的区别
  • 流畅的Python(十九)-动态属性和特性
  • 确保云原生部署中的网络安全
  • 【分布式websocket 】前端vuex管理客户端消息crud!使用localStorage来存储【第19期】
  • venv uvicorn python 虚拟服务器外网无法访问
  • 一款博客网站源码
  • Mr-Robot1靶场练习靶场推荐小白入门练习靶场渗透靶场bp爆破wordpress
  • 数据仓库的设计开发应用(三)
  • 【04】WebAPI
  • 数据预处理在数据挖掘中的重要性
  • Java并发编程—JUC线程池架构
  • Android input输入子系统
  • 如何在webapp中于动发布一个应用
  • 部署一个本地的ChatGPT(Ollama)