CSS选择器常见的有哪几种?

CSS选择器常见的有哪几种?

一、简单选择器 Simple Selectors

选择器 含义
* 通用元素选择器,匹配任何元素
E 标签选择器,匹配所有使用E标签的元素
.info class选择器,匹配所有class属性中包含info的元素
#footer id选择器,匹配所有id属性等于footer的元素

二、属性选择器 Attribute Selectors

选择器 含义
[atrr] 选择包含 attr 属性的所有元素,不论 attr 的值为何
[attr=val] [attr=val] 仅选择 attr 属性被赋值为 val 的所有元素

三、组合选择器 Combinators

选择器 含义
A, B 选中匹配 A 或/和 B 的元素
A B 选中匹配 B 且为匹配 A 的元素的后代元素(A B之间空格分开)
A > B 选中匹配 B 且为匹配 A 的元素的直接子元素
A + B 选中匹配 B 且为匹配 A 的元素的下一相邻元素
A ~ B 选中匹配 B 且为匹配 A 的元素的下 N 个相邻元素

四、伪类 Pseudo-classes

选择器 含义
a:link 匹配所有未被点击的链接
a:visited 匹配所有已被点击的链接
a:hover 匹配鼠标悬停其上的a元素
a:active 匹配鼠标已经其上按下、还没有释放的a元素
li:first-child 匹配父元素的第一个子元素li
li:last-child 匹配父元素的最后一个子元素li
li:nth-child(n) 匹配父元素的第n个子元素li(odd奇数,even偶数)

五、伪元素 Pseudo-elements

选择器 含义
E::before 在E元素内创建一个子元素,插入生成的内容作为伪元素,放在最前面
E::after 在E元素内创建一个子元素,插入生成的内容作为伪元素,放在最后面
E::selection 应用于文档中被用户高亮的部分(比如使用鼠标选中的部分)
E::first-letter 匹配E元素的第一个字母第一行的第一个字母
E::first-line 匹配E元素的第一行

六、多重选择器 Multiple Selectors

在HTML中,我们有时会对同一个标签赋予多个class名称,如:

<div class="one two"></div>

而在CSS里面则可能同时选择多个class,像是:

.one .two{}    /*两个 class 中有空格*/
.one.two{}     /*两个 class 中沒有空格*/
.one, .two{}   /*两个 class 中出现逗号*/

这三者 one.two{ }.one .two{ },或者是.one, .two{ }有何区别?

  • 第一个的 one 和 two 中间包含空格,意思是指,我必须要是在 one 裡面的 two,才会被选择到。
  • 第二个的 one 和 two 中间没有包含空格,表示某个区块必须同时具有 one 和 two 的 class 时,才能被 CSS 所选择到到。
  • 第三个的 one 和 two 中间包含逗号,意思是指 class 中有 one 或 two,都会被编辑器所选择到。

简单来说,没空格表示必须同时包含才会被选取;有空格表示后面的 class 被镶嵌在前面的 class 中才会被选取;逗号则表示只要有其中一个 class 就会被选取到 。


文中参考了如下内容:

CSS选择器笔记——阮一峰的网络日志
CSS中的多重选择器——PJCHENder

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.CSS 元素选择器 最常见的 CSS 选择器是元素选择器。换句话说,文档的元素就是最基本的选择器。如果设置 H...
    饥人谷_小侯阅读 880评论 0 1
  • id选择器 先看看class属性和id属性的区别吧。 id id用于定义唯一的标识符,它是一个全局属性,在整个HT...
    知更鸟_b4d4阅读 437评论 0 0
  • 转载自牢记31种CSS选择器用法 1 * 星号选择器用于选取页面中的所有元素,可用于快速清除所有元素的 margi...
    Icestains阅读 1,275评论 0 1
  • 简介网络浏览器很可能是使用最广的软件。在这篇入门文章中,我将会介绍它们的幕后工作原理。我们会了解到,从您在地址栏输...
    wengjq阅读 2,060评论 2 15
  • 学习CSS的最佳网站没有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_阅读 1,089评论 0 1