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

CSS四大选择器:90%的人只用到前两个,第三个能让你代码效率翻倍!

目录

CSS选择器四大家族 · 嫡系后代天团

“后代选择器”家族定位:全族后辈通通拿捏

目录

目录

CSS选择器四大家族 · 嫡系后代天团

“后代选择器”家族定位:全族后辈通通拿捏

关系释义:匹配所有层级后代子孙,不分亲疏、隔代也能选中,家族覆盖范围最广。

“子选择器”家族定位:只认直系亲生子

关系释义:只匹配一级直接子元素,隔代晚辈一概不认,血统最纯正。

“相邻兄弟选择器”家族定位:紧挨着的隔壁亲兄弟

关系释义:只选中紧跟在后面的唯一一个同级兄弟,中间不能有旁人插队

“通用兄弟选择器” 家族定位:所有同辈兄弟姐妹

关系释义:匹配后面所有同级同胞,只要辈分相同、同在一个父级下,全部选中。


关系释义:匹配所有层级后代子孙,不分亲疏、隔代也能选中,家族覆盖范围最广。

“子选择器”家族定位:只认直系亲生子

关系释义:只匹配一级直接子元素,隔代晚辈一概不认,血统最纯正。

“相邻兄弟选择器”家族定位:紧挨着的隔壁亲兄弟

关系释义:只选中紧跟在后面的唯一一个同级兄弟,中间不能有旁人插队

“通用兄弟选择器” 家族定位:所有同辈兄弟姐妹

关系释义:匹配后面所有同级同胞,只要辈分相同、同在一个父级下,全部选中。

后代选择器

首先,后代选择器的定义是匹配作为某个元素的后代的所有元素,中间不论隔了多少层,只要是包含在后代内的都会被选中,在style里面用空格来连接

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>关系选择器</title> <style> /* 选中所有在ul标签下的h2标签将字体颜色改为red */ ul h2{color:red} </style> </head> <body> <!-- 选中这个ul标签下的所有h2标签,后代选择器可以跨代,所以在li标签里面的也会被选中 --> <ul> <h2>111</h2> <li> <h2>222</h2> </li> </ul> <!-- 不止选一个,代码会检查所有ul标签,只要符合条件就会被选中 --> <ul> <h2>333</h2> </ul> <!-- 这个li标签里面有h2标签,但是第一个h2没有被ul包裹,所以不会被选中,第二个h2符合条件,所以被选中 --> <li> <h2>444</h2> <ul> <h2>555</h2> </ul> </li> <!-- 只要是符合“在ul下面的h2标签”就会被选中,无论中间隔了多少层 --> <li> <ul> <li> <li> <h2>666</h2> </li> </li> </ul> </li> </body> </html>

子代选择器

子代选择器不可跨代,跨代无效,层级必须一一对应,顺序不能错乱,精准度会比较高一点

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>关系选择器</title> <style> /* 选中所有在ul标签下的li标签下的h2标签并将字体颜色改为red */ ul>li>h2{color:red} </style> </head> <body> <!-- 层级为ul > li > h2,中间没有间隔,符合条件 --> <ul> <li> <h2>888</h2> </li> </ul> <!-- 中间有间隔,不连续,不符合条件 --> <ul> <li> <li> <h2>999</h2> </li> </li> </ul> </body> </html>

相邻兄弟选择器

用于选中某元素的相邻兄 必须是同级、同辈分标签

只选后面紧贴的1个相邻兄弟元素(某元素后面第一个同级xxx元素)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>关系选择器</title> <style> /* 选中与ul同级的li元素 */ ul+li{color:red} </style> </head> <body> <!-- 这个ul与其内部的li不属于同级,所以000不会被选中 --> <ul> <li>000</li> </ul> <!-- 这个li与上面的ul属于同级,所以这个li里面的内容会被改变样式 --> <li> <h2>100</h2> </li> </body> </html>

通用兄弟选择器

这个选择器和相邻兄弟选择器类似,层级都是同级,但是这个选中的范围是某个元素后面的所有同级的某个元素,只有同级的和后面的才行,前面的不会被选中,且中间可以有间隔,两个元素之间用 ~ 连接

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>关系选择器</title> <style> /* 选中与ul后面的同级的所有li元素 */ ul~li{color:red} </style> </head> <body> <li>400</li> <!-- 选中此ul下面的所有同级li元素 --> <ul>500</ul> <li>600</li> <h3>700</h3> <li>800</li> <p>900</p> <h3>001</h3> <li>002</li> <!-- 这个ul里面的li和上面的ul不是同级,所以不会被选中 --> <ul> <li>003</li> </ul> <!-- 这个li元素与最上面的ul仍然为同级,所以会被选中 --> <li>004</li> </body> </html>
http://www.jsqmd.com/news/767723/

相关文章:

  • 百度网盘直链解析终极指南:告别限速困扰,实现满速下载
  • 2025年各国地理距离、与中国地理距离
  • 别再混淆了!一次搞懂CIE Lab、LCh、XYZ和sRGB的区别与转换(附C++代码验证)
  • 什么是RWS责任羊毛认证?懂羊毛的人,都认准这枚「良心标识」
  • Selenium爬虫实战:用User Data绕过登录验证,5分钟搞定需要插件的网站访问
  • 基于STM32的智能宿舍管理系统设计与实现
  • VPS 遭遇 CC 攻击怎么配置 Cloudflare 防护
  • 现代GraphQL服务开发:从Apollo Server到TypeORM的完整工程实践
  • 从零开始理解RISC-V:RV32I/RV64I基础指令集到底在做什么?
  • GitHub终极汉化方案:5分钟让英文GitHub秒变中文的高效插件
  • skene-cookbook:700+AI技能库,一键部署Claude/Cursor提示词工程自动化
  • 专业级GPU显存稳定性检测:5分钟掌握memtest_vulkan硬件测试完整指南
  • Arm Cortex-R82处理器架构与关键系统寄存器解析
  • 告别大模型!用DTTNet这个轻量级框架,在普通显卡上也能玩转音源分离
  • 彻底告别开机烦恼:TranslucentTB任务栏透明工具自启动完全指南
  • 从DFMEA到PPAP:手把手拆解APQP核心工具链,让质量策划不再是纸上谈兵
  • 通过审计日志功能追踪和管理团队的 API Key 使用情况
  • 魔兽争霸III终极优化指南:5分钟解决所有游戏兼容性问题
  • BetaFlight调参进阶:用CLI的set命令微调你的飞行手感(附常用参数清单)
  • 告别SAP RFC调用迷茫:用C# .NET Core 6封装一个自己的SAPHelper(附完整源码)
  • YOLOv5改进损失函数后,在工业缺陷检测上真能涨点吗?我用NEU-DET数据集实测了EIoU、Focal-EIoU
  • 鲟龙科技冲刺港股:靠卖鱼子酱年营收7.7亿 王斌控制35%股权
  • Arm Cortex-R82分支预测机制与实时系统优化
  • 使用 Taotoken 后如何通过用量看板清晰掌握 API 成本
  • 人机协同新范式:基于MCP协议的Human-in-the-loop AI工具调用实践
  • 2025最权威的十大降重复率网站横评
  • 一键把杂乱文档变成结构化知识图谱!开源 Hyper-Extract:LLM驱动的超强知识提取神器,Hypergraph + 时空图全支持
  • 必看!江苏鹰衡电子汽车衡地磅测评,精准稳定但功能有短板
  • 数组和二叉树
  • 从Word到LaTeX再回来:我的跨格式论文润色流水线(Pandoc+ChatGPT实战)