30个最常用CSS选择器解析

30个最常用css选择器解析 30个最常用css选择器解析 CSS 立即下载

IT屌丝码农之家   


你也许已经掌握了id、class、后台选择器这些基本的css选择器。但这远远不是css的全部。下面向大家系统的解析css中30个最常用的选择器,包括我们最头痛的浏览器兼容性问题。掌握了它们,才能真正领略css的巨大灵活性。


1. *

  1. * {      margin: 0;      padding: 0;     }
复制代码
星状选择符会在页面上的每一个元素上起作用。web设计者经常用它将页面中所有元素的margin和padding设置为0。 *选择符也可以在子选择器中使用。
  1. #container * { border: 1px solid black; }
复制代码
上面的代码中会应用于id为container元素的所有子元素中。 除非必要,我不建议在页面中过的的使用星状选择符,因为他的作用域太大,相当耗浏览器资源。 兼容浏览器:IE6+、Firefox、Chrome、Safari、Opera

2. #X
  1. #container { width: 960px; margin: auto; }
复制代码
井号作用域有相应id的元素。id是我们最常用的css选择器之一。id选择器的优势是精准,高优先级(优先级基数为100,远高于class的10), 作为javascript脚本钩子的不二选择,同样缺点也很明显优先级过高,重用性差,所以在使用id选择器前,我们最好问下自己,真的到了非用id选择 器的地步? 兼容浏览器:IE6+、Firefox、Chrome、Safari、Opera

3. .X
  1. .error { color: red; }
复制代码
这是一个class(类)选择器。class选择器与id选择器的不同是class选择器能作用于期望样式化的一组元素。 兼容浏览器:IE6+、Firefox、Chrome、Safari、Opera

4. X Y
  1. li a { text-decoration: none; }
复制代码

这也是我们最常用的一种选择器——后代选择器。用于选取X元素下子元素Y,要留意的点是,这种方式的选择器将选取其下所有匹配的子元素,无视层级,所以有 的情况是不宜使用的,比如上述的代码去掉li下的所有a的下划线,但li里面还有个ul,我不希望ul下的li的a去掉下划线。使用此后代选择器的时候要 考虑是否希望某样式对所有子孙元素都起作用。这种后代选择器还有个作用,就是创建类似命名空间的作用。比如上述代码样式的作用域明显为li。 兼容浏览器:IE6+、Firefox、Chrome、Safari、Opera

5. X
  1. a { color: red; }
  2. ul { margin-left: 0; }
复制代码

标签选择器。使用标签选择器作用于作用域范围内的所有对应标签。优先级仅仅比*高。 兼容浏览器:IE6+、Firefox、Chrome、Safari、Opera

6. X:visited和X:link
  1. a:link { color: red; }
  2. a:visted { color: purple; }
复制代码

使用:link伪类作用于未点击过的链接标签。:hover伪类作用于点击过的链接。 兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera

7. X+Y

  1. ul + p { color: red; }
复制代码

相邻选择器,上述代码中就会匹配在ul后面的第一个p,将段落内的文字颜色设置为红色。(只匹配第一个元素) 兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera

8. X>Y
  1. div#container > ul {border: 1px solid black;}

  2. <div id="container">
  3. <ul>
  4. <li> List Item
  5. <ul>
  6. <li> Child </li>
  7. </ul>
  8. </li>
  9. <li> List Item </li>
  10. <li> List Item </li>
  11. <li> List Item </li>
  12. </ul>
  13. </div>
复制代码

子选择器。与后代选择器X Y不同的是,子选择器只对X下的直接子级Y起作用。在上面的css和html例子中,div#container>ul仅对container中最近一级的ul起作用。从理论上来讲X > Y是值得提倡选择器,可惜IE6不支持。 兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera

9. X ~ Y
  1. ul ~ p {color: red;}
复制代码

相邻选择器,与前面提到的X+Y不同的是,X~Y匹配与X相同级别的所有Y元素,而X+Y只匹配第一个。 兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera

10. X[title]
  1. a[title] {color: green;}
复制代码

属性选择器。比如上述代码匹配的是带有title属性的链接元素。
兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera

11. X[title="foo"]
  1. a[href="http://www.w3cfuns.com"] {color: #1f6053;}
复制代码

属性选择器。 上面的代码匹配所有拥有href属性,且href为 http://www.w3cfuns.com的所有链接。
这个功能很好,但是多少又有些局限。如果我们希望匹配href包含css9.net的所有链接该怎么做呢?看下一个选择器。 兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera

12. X[title*="css9.net"]
  1. a[href*="w3cfuns.com"] {color: #1f6053;}
复制代码
属性选择器。正如我们想要的,上面代码匹配的是href中包含"w3cfusn.com"的所有链接。
兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera

13. X[href^="http"]
  1. a[href$=".jpg"], a[href$=".jpeg"], a[href$=".png"], a[href$=".gif"] {
  2. color: red;
  3. }
复制代码

看上去比较麻烦。另一个解决办法是为所有的图片链接加一个特定的属性,例如‘data-file’
html代码
  1. <a href="path/to/image.jpg" data-filetype="image"> 图片链接 </a> 
  2. css代码如下: a[data-filetype="image"] { color: red;}
复制代码

这样所有链接到图片的链接字体颜色为红色。
兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera


15. X[foo~="bar"]
属性选择器。属性选择器中的波浪线符号可以让我们匹配属性值中用空格分隔的多个值中的一个。看下面例子:
html代码
  1. <a href="path/to/image.jpg" data-info="external image"> Click Me, Fool </a>
复制代码

css代码

  1. a[data-info~="external"] {
  2. color: red;
  3. }
  4. a[data-info~="image"] {
  5. border: 1px solid black;
  6. }
复制代码

在上面例子中,匹配data-info属性中包含“external”链接的字体颜色为红色。匹配data-info属性中包含“image”的链接设置黑色边框。
兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera

17. X:checked
checked伪类用来匹配处于选定状态的界面元素,如radio、checkbox。

  1. input[type=radio]:checked {
  2. border: 1px solid black;
  3. }
复制代码
上面代码中匹配的是所有处于选定状态的单选radio,设置1px的黑色边框。
兼容浏览器:IE9+、Firefox、Chrome、Safari、Opera

18. X:after和X:before
这两个伪类与content结合用于在元素的前面或者后面追加内容,看一个简单的例子:
  1. h1:after {content:url(/i/logo.gif)}
复制代码
上面的代码实现了在h1标题的后面显示一张图片。
我们也经常用它来实现清除浮动,写法如下:
  1. .clearfix:after {
  2. content: "";
  3. display: block;
  4. clear: both;
  5. visibility: hidden;
  6. font-size: 0;
  7. height: 0;
  8. }
  9. .clearfix {
  10. *display: inline-block;
  11. _height: 1%;
  12. }
复制代码

19. X:hover
  1. div:hover {
  2. background: #e3e3e3;
  3. }
复制代码

:hover伪类设定当鼠标划过时元素的样式。上面代码中设定了div划过时的背景色。
需要注意的是,在ie 6中,:hover只能用于链接元素。
这里分享一个经验,在设定链接划过时出现下滑线时,使用border-bottom会比text-decoration显得更漂亮些。代码如下:
  1. a:hover {
  2. border-bottom: 1px solid black;
  3. }
复制代码

兼容浏览器:IE6+、Firefox、Chrome、Safari、Opera

20. X:not(selector)
  1. p::first-letter {
  2. float: left;
  3. font-size: 2em;
  4. font-weight: bold;
  5. font-family: cursive;
  6. padding-right: 2px;
  7. }
复制代码

下面的代码中设定了段落中第一行的样式:
  1. p::first-line {
  2. font-weight: bold;
  3. font-size: 1.2em;
  4. }
复制代码

兼容浏览器:IE6+、Firefox、Chrome、Safari、Opera
(IE6竟然支持,有些意外啊。)

22. X:nth-child(n)
  1. li:nth-child(3) {
  2. color: red;
  3. }
复制代码

这个伪类用于设定一个序列元素(比如li、tr)中的第n个元素(从1开始算起)的样式。在上面例子中,设定第三个列表元素li的字体颜色为红色。
看一个更灵活的用法,在下面例子中设定第偶数个元素的样式,可以用它来实现隔行换色:
  1. tr:nth-child(2n) {
  2. background-color: gray;
  3. }
复制代码

兼容浏览器:IE9+、Firefox、Chrome、Safari

23. X:nth-last-child(n)
  1. li:nth-last-child(2) {
  2. color: red;
  3. }
复制代码

与X:nth-child(n)功能类似,不同的是它从一个序列的最后一个元素开始算起。上面例子中设定倒数第二个列表元素的字体颜色。
兼容浏览器:IE9+、Firefox、Chrome、Safari、Opera

24. X:nth-of-type(n)
  1. ul:nth-of-type(3) {
  2. border: 1px solid black;
  3. }
复制代码

与X:nth-child(n)功能类似,不同的是它匹配的不是某个序列元素,而是元素类型。例如上面的代码设置页面中出现的第三个无序列表ul的边框。
兼容浏览器:IE9+、Firefox、Chrome、Safari

25. X:nth-last-of-type(n)
  1. ul:nth-last-of-type(3) { border: 1px solid black; }
复制代码

与X:nth-of-type(n)功能类似,不同的是它从元素最后一次出现开始算起。上面例子中设定倒数第三个无序列表的边框
兼容浏览器:IE9+、Firefox、Chrome、Safari、Opera

26. X:first-child
:first-child伪类用于匹配一个序列的第一个元素。我们经常用它来实现一个序列的第一个元素或最后一个元素的上(下)边框,如:
  1. ul:nth-last-of-type(3) {
  2. border: 1px solid black;
  3. }
复制代码

兼容浏览器:IE7+、Firefox、Chrome、Safari、Opera

27. X:last-child
  1. ul > li:last-child {
  2. border-bottom:none;
  3. }
复制代码

与:first-child类似,它匹配的是序列中的最后一个元素。
兼容浏览器:IE9+、Firefox、Chrome、Safari、Opera

28. X:only-child
  1. div p:only-child {
  2. color: red;
  3. }
复制代码

这个伪类用的比较少。在上面例子中匹配的是div下有且仅有一个的p,也就是说,如果div内有多个p,将不匹配。

  1. <div>
  2. <p> My paragraph here. </p>
  3. </div>
  4. <div>
  5. <p> Two paragraphs total. </p>
  6. <p> Two paragraphs total. </p>
  7. </div>
复制代码

在上面代码中第一个div中的段落p将会被匹配,而第二个div中的p则不会。
兼容浏览器:IE9+、Firefox、Chrome、Safari、Opera

29. X:only-of-type

  1. li:only-of-type {
  2. font-weight: bold;
  3. }
复制代码

这个伪类匹配的是,在它上级容器下只有它一个子元素,它没有邻居元素。例如上面代码匹配仅有一个列表项的列表元素。
兼容浏览器:IE9+、Firefox、Chrome、Safari、Opera

30. X:first-of-type
:first-of-type伪类与:nth-of-type(1)效果相同,匹配出现的第一个元素。我们来看个例子:
  1. ul:first-of-type > li:nth-child(2) {
  2. font-weight: bold;
  3. }
复制代码

方案二:
  1. p + ul li:last-child {
  2. font-weight: bold;
  3. }
复制代码

方案三:
  1. ul:first-of-type li:nth-last-child(1) {
  2. font-weight: bold;
  3. }
复制代码

兼容浏览器:IE9+、Firefox、Chrome、Safari、Opera。



总结:

        如果你正在使用老版本的浏览器,如IE 6,在使用上面css选择器时一定要注意它是否兼容。不过,这不应成为阻止我们学习使用它的理由。在设计时,你可以参考浏览器兼容性列表,也可以通过脚本手段让老版本的浏览器也支持它们。

       另一点,我们在使用javascript类库的选择器时,例如jquery,要尽可能的使用这些原生的css3选择器,因为类库的选择器引擎会通过浏览器内置解析它们,这样会获得更快的速度。
推荐系统(六)双塔模型 双塔模型是推荐场景中常用的粗排模型之一,本节主要介绍几种典型的双塔模型及其变型,如SENet 双塔模型,并联双塔,蒸馏学习,对偶增强双塔,阿里 COLD。 阅读详情

相关推荐

NOIP2008年普及组初赛题目答案及解析

NOIP2008年初赛详细题解

城南蝈蝈 927

这30个CSS选择器,你必须熟记(下)

关注前端达人,与你共同进步21、 X::pseudoElement 伪元素选择器我们可以使用伪元素(用::表示)来定义某些片段元素,比如第一行或第一个字母。要记住的是这只...

前端达人 3758

CATIA CAA开发环境搭建避坑指南:从授权服务到VS配置全流程

本文提供了一份详尽的CATIA CAA开发环境搭建避坑指南,涵盖从授权服务(DSLS)安装、Visual Studio版本匹配与集成配置,到编译调试全流程。重点解析了授权服务无法连接、模块加载失败等典型问题的解决方案,强调版本严格对应与纯英文环境是成功搭建的关键。

redis7keeper的博客 573

熟记30个CSS选择器(上)

CSS的魅力就是让我们前端工程师像设计师一样进行网页的设计,我们能轻而易举的改变颜色、布局、制作出漂亮的影音效果等等,我们只需要改几行代码,不需要借助任何软件,就能轻而易举的实现,感觉就像魔法师一般,几秒钟就能得到一个想要的效果,是不是很酷呢。 CSS为我们提供了选择器,这个酷酷的魔法工具,让我们随意能够操作网页元素的样式,CSS选择器众多,我们不可能一次性学完,但是这30个CSS选择器我们必须熟练记忆,可能有的同学觉得没必要学这么多,掌握了id、class、后代选择器就够了,这算完事了吗?如果是这样你就错

qq_43794638的博客 272

使用 Claude Skills 构建专业级 AI Agent:技术实践指南

Claude Skills(也称)是一组基于文件系统的可重用资源包,为 Claude 提供特定领域的专业知识、标准化工作流程和最佳实践。与传统一次性 Prompt 不同,Skills 是持久化、自动触发、支持代码执行的智能模块。让 AI 真正理解并执行你的工作方式。Claude Skills 正在重新定义 AI 助手的边界——从“回答问题”升级为“执行专业工作的能力”。其可组合、可移植、高效、强大的特性,使其成为自动化重复任务、标准化工作流、提升团队效率的理想工具。未来已来。

weixin_44058951的博客 2226

YOLO11数据增强中的色彩空间变换:HSV、YUV等增强技术的原理、实现与参数调优全解析

摘要 本文介绍了色彩空间的基本概念及其在数据增强中的应用,重点分析了HSV色彩空间的原理与特性。色彩空间作为颜色表示的数学模型,在计算机视觉中具有重要作用,RGB、HSV、YUV等常用色彩空间各有特点。数据增强中的色彩变换能提升模型鲁棒性、缓解数据不平衡并防止过拟合。HSV色彩空间将颜色分为色调(H)、饱和度(S)和明度(V)三个独立分量,更符合人类视觉感知,便于针对性调整图像属性。文章详细阐述了HSV与RGB的转换公式,为YOLO11等目标检测框架的数据增强提供了理论基础。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 288

TC3xx安全启动深度解析:从HSM、ABM到功能安全,如何设计符合ASIL-D的启动架构?

本文深入解析英飞凌TC3xx系列微控制器的安全启动架构,涵盖HSM硬件安全模块、BMHD配置及ABM模式等关键设计,探讨如何满足ASIL-D功能安全要求。通过详细的技术分析和实践案例,帮助开发者构建符合ISO 26262标准的启动流程,确保系统安全性与可靠性。

weixin_33700350的博客 603

越野换了逐飞的ips200pro的屏幕后代码烧录中报错: “Cannot initialize device connection” 和 “Flashing failed” ...如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1150

CSS3选择器-30个

CSS3选择器-30个1、*:通用元素选择器2、#ID:ID选择器3、.class:类选择器4、E :元素选择器5、E X:元素组合选择器6、E :visited and E:link 伪类选择器7、X + Y:毗邻元素选择器8、X > Y:子元素选择器9、X ~ Y:10、X[title]:属性选择器11、x[href="foo"]12、x[href*="nettuts"]13、X[href^="http"]14、x[href$=".jpg"]15、X[data-*="foo"]16、X[foo~=

Seven的博客 359

华为OD机试新系统真题【终端设备档位差异统计】

华为OD机试 新系统真题【终端设备档位差异统计】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【终端设备档位差异统计】多语言题解。

qq_45776114的博客 786

2023年12月机器人技术等级考试试卷(三级理论) 试题解析

2023年12月机器人技术等级考试试卷(三级理论) 试题解析

http://www.cierobot.com 4095

30个最常用css选择器解析(zz)

你也许已经掌握了id、class、后台选择器这些基本的css选择器。但这远远不是css的全部。下面向大家系统的解析css中30个最常用的选择器,包括我们最头痛的浏览器兼容性问题。掌握了它们,才能真正领略css的巨大灵活性。 1. * * { margin: 0; padding: 0; } 星状选择符会在页面上的每一个元素上起作用。web设计者经常用它将页面中...

weixin_30879169的博客 118

通过分子模板构建随机分布在溶液中的纳米颗粒(一)

通过分子模板构建随机分布在溶液中的纳米颗粒 要实现的目标: 1、可以循环建立多个水分子溶液的模型; 2、针对不同水分子数,自动创建文件夹; 3、运行完毕将所有结果自动存储在对应文件夹里; 分子模板的具体教程请见我的博客: https://blog.youkuaiyun.com/qq_43689832/article/details/104443175 1、首先,我们先建立纳米颗粒的分子模板,命名为p_30.txt: 包括两种原子类型。具体格式如下: # LAMMPS molecule file makin.

Rockyoung 2651
上一篇: 网站权重如何得来
下一篇: IE10的CSS技巧(IE10专属css hack写法)
IT_hack
博客等级 码龄14年 0粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值