Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CSS选择器

CSS选择器

作者头像
赤蓝紫
发布于 2023-01-02 05:16:13
发布于 2023-01-02 05:16:13
1.3K00
代码可运行
举报
文章被收录于专栏:clzclz
运行总次数:0
代码可运行

CSS 选择器

1. 标签选择器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div></div>

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
div {
  width: 100px;
  height: 100px;
  background-color: pink;
}

2. ID 选择器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="box"></div>

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#box {
  width: 100px;
  height: 100px;
  background-color: pink;
}

3. 类选择器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="box"></div>

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.box {
  width: 100px;
  height: 100px;
  background-color: pink;
}

4. 通配符选择器*

匹配任何标签。页面标签越多,效率越低

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<h3>Hello</h3>
<span>World</span>
<div>!</div>

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
* {
  color: red;
}

5. 后代选择器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="father">
  Father
  <div>
    Son
    <div>孙子</div>
  </div>
</div>

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.father div {
  color: red;
}

6. 子元素选择器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="father">
  Father
  <div>
    Son1
    <div>孙子</div>
  </div>
</div>

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
div {
  color: blue;
}

.father > div {
  color: red;
}

7. 交集选择器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<h3>h3</h3>
<div class="test">.test</div>
<h3 class="test">h3.test</h3>

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
h3.test {
  color: red;
}

8. 并集选择器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<h3>h3</h3>
<div class="box">box</div>
<span>span</span>
<h2>h2</h2>

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
h3,
.box,
span {
  color: red;
}

9. 属性选择器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<a href="javascript:;" title="aa hh" class="a b">aa</a>
<a href="javascript:;" class="b a c">bb</a>
<a href="javascript:;" title class="a">cc</a>
<a href="jsvascript:;" title="ac" class="a-test">ac</a>
<a href="jsvascript:;" title="ca">ca</a>

[attr]

选择存在 attr 属性的元素, attr 属性没有值也会选中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a[title] {
  /** 选择存在title属性的<a>元素, title属性没有值也会选中**/
  color: red;
}

[attr=value]

选择存在 attr 属性且属性值为 value 的元素

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a[title="aa"] {
  /** 选择存在title属性且属性值为aa的<a>元素**/
  color: red;
}

[attr*=value]

选择存在 attr 属性且属性值中包含 value 值的元素

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a[title*="a"] {
  /** 选择存在title属性且属性值中有a的<a>元素**/
  color: red;
}

[attr^=value]

选择存在 attr 属性且属性值中以 value 值开头的元素

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a[title^="a"] {
  /** 选择存在title属性且属性值以a为开头的<a>元素**/
  color: red;
}

[attr$=value]

选择存在 attr 属性且属性值中以 value 值结尾的元素

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a[title$="a"] {
  /** 选择存在title属性且属性值以a为结尾的<a>元素**/
  color: red;
}

[attr~=value]

选择存在 attr 属性,且该属性是一个以空格作为分隔的值列表,其中至少有一个值为 value 的元素

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a[class~="a"] {
  /** 选择存在class属性,且属性值是以空格作为分隔的值一系列值,其中至少有一个属性值是a**/
  color: red;
}

[attr|=value]

选择存在 attr 属性,且属性值为“value”或是以“value-”为前缀的元素

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a[class|="a"] {
  /** 选择存在class属性,且属性值为“a”或是以“a-”为前缀的元素**/
  color: red;
}

10. 伪类选择器

伪类:同一个元素,有不同的状态,有不同的样式

可分为两种。

静态伪类:只能用于超链接的样式

  • :link:超链接点击之前
  • :visited:超链接被访问之后
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<a href="http://www.xxx.com">xxx</a>

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a:link {
  color: red;
}

a:visited {
  color: pink;
}

动态伪类所有标签都使用的样式

  • :hover:鼠标悬停在标签上的时候
  • :active:鼠标点击标签,但是还没松手的时候
  • :focus:标签获得焦点时的样式
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<input type="text" value="获得焦点变色(:focus)" />
<p>悬停变色(:hover)</p>
<div class="box">按住变色(:active)</div>

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
input:focus {
  color: red;
}

p:hover {
  color: blue;
}

.box:active {
  color: purple;
}

超链接的四个状态

  • :link
  • :visited
  • :hover
  • ` :active

css 中,超链接的四个状态必须按固定的顺序写: :link -> :visited -> :hover -> :active,否则可能会失效

按顺序一切正常

<a href="http://www.com">www</a>

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a:link {
  color: red;
}

a:visited {
  color: blue;
}

a:hover {
  color: purple;
}

a:active {
  color: pink;
}

:active 换到最前面去:按住链接时,不会变粉色了

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a:active {
  color: pink;
}

a:link {
  color: red;
}

a:visited {
  color: blue;
}

a:hover {
  color: purple;
}

原因:

css 样式是由权重的,上面的权重都相同,所以 a:hover 的样式会覆盖掉前面的 a:active 的样式,因为链接被激活时,鼠标也是悬停在链接上方的,所以效果是什么样,就看谁没有被覆盖了。

知道原理后,就可能会提出,这样的话,就没有必要一定要按照顺序了,只需要提高权重就行了。如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a:active {
  color: pink !important;
}

a:link {
  color: red;
}

a:visited {
  color: blue;
}

a:hover {
  color: purple;
}

虽然这样子确实可以,但是按照代码规范就可以避免的问题,为什么要绕弯路呢?这样做以后也可能会引发出大问题。

11. 相邻兄弟选择器

相邻兄弟选择器 (+) 介于两个选择器之间,当第二个元素紧跟在第一个元素之后,并且两个元素都是属于同一个父元素的子元素,则第二个元素将被选中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div>
  <p></p>
  <h2>相邻兄弟选择器</h2>
  <p>1</p>
  <p>2</p>
</div>

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
h2 + p {
  color: red;
}

12. 通用兄弟选择器

a~b:a 和 b 同级,选择 a 元素之后所有同级的 b 元素

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div>
  <p></p>
  <h2>通用兄弟选择器</h2>
  <p>1</p>
  <p>2</p>
</div>

<p>不同级</p>

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
h2 ~ p {
  color: red;
}

13. :nth-child() 选择器

:nth-child()这个伪类选择器会先找到当前元素的兄弟元素,然后按位置先后顺序从 1 开始排序

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Myself</title>
    <style>
      p:nth-child(2) {
        color: red;
        /* 先把p的兄弟元素找出来,排序,因为h2也是p的兄弟元素,所以h2的序号是1,所以p-1会变红 */
      }

      /* ele:nth-child()选择器是用来选择符合条件的ele元素的,所以p:nth-child(1)不会选择到任何元素,因为没有序号为1的p元素 */
    </style>
  </head>

  <body>
    <h2>h2-1</h2>
    <p>p-1</p>
    <p>p-2</p>
    <p>p-3</p>
    <p>p-4</p>
    <p>p-5</p>
    <p>p-6</p>
    <p>p-7</p>
    <p>p-8</p>
  </body>
</html>

其他用法:

如果:nth-child()括号中不是数字而是表达式,如 2n + 1,n 是从零开始整数,所以会选择序号为 1, 3, 5, … , 2n+1 的元素。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
p:nth-child(2n + 1)  /* 表示选中序号为奇数的p元素,这里的n是从零开始的 */
p:nth-child(2n)  /* 表示选中序号为偶数数的p元素 */

p:nth-child(odd)	/* 表示选中序号为奇数的p元素 */
p:nth-child(even)	/* 表示选中序号为偶数的p元素 */

p:nth-child(n + 3)	/* 表示选中序号大于等于3的p元素 */
p:nth-child(-n + 3)	/* 表示选中序号小于等于3的p元素 */

:nth-last-child()和:nth-child()用法类似,不同的是它从结尾开始排序。

14. :nth-of-type()选择器

用法和:nth-child()选择器类似。

不同的是::nth-of-type()选择器是把要选择的元素按先后顺序排序。如下面的例子,p:nth-of-type(2)会先把所有的 p 标签排序,而不是把 p 标签的兄弟元素进行排序,所以变红的就是 p-2

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Myself</title>
    <style>
      p:nth-of-type(2) {
        color: red;
      }
    </style>
  </head>

  <body>
    <h2>h2-1</h2>
    <p>p-1</p>
    <p>p-2</p>
    <p>p-3</p>
    <p>p-4</p>
    <p>p-5</p>
    <p>p-6</p>
    <p>p-7</p>
    <p>p-8</p>
  </body>
</html>

15. :first-child 选择器

和:nth-child(1)用法一样

16. :first-of-type 选择器

和:nth-of-type(1)用法一样

参考链接:

MDN Web Docs (mozilla.org)

CSS 选择器:伪类(图文详解) - 千古壹号 - 博客园 (cnblogs.com)

CSS 的四种基本选择器和四种高级选择器Jack-CSDN 博客高级选择器

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-10-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
CSS选择器
在模块定义不太稳定的阶段,浏览器会采用厂商前缀实现某个特性。它允许早起采纳者试用浏览器实现的新属性。
奋飛
2019/08/15
1.6K0
CSS选择器详解
最近在做一些面试的工作,我经常会问的一个问题就是:CSS中有哪些选择器。我往往得到的答案就是id选择器啊、class选择器啊,再追问下去就没了,这让我很是意外! 看来这基础的东西,大家都说很重要,可真正能静下心来去看的并不多,更别说在项目中灵活使用了! 元素选择器 通配选择器 * { sRules } 选定文档所有的元素 /** 设置所有元素为红色 **/ * {   color: red; } <div>我是div</div> <p>我是p</p> 类型选择器 E { sRules } 选定指定的文
laixiangran
2018/04/11
2.9K0
从零开始学 Web 之 CSS3(一)CSS3概述,选择器
CSS3是CSS(层叠样式表)技术的升级版本,主要包括盒子模型、列表模块、超链接方式、语言模块、背景和边框、文字特效、多栏布局等模块。
Daotin
2018/08/31
1.2K0
第91天:CSS3 属性选择器、伪类选择器和伪元素选择器
除了以前学过的:link、:active、:visited、:hover,CSS3又新增了其它的伪类选择器。
半指温柔乐
2018/09/11
1.7K0
CSS选择器大全
通配符选择器 通配符选择器可代表给所有的标签添加样式   *{   margin:0px;   Padding:0px;   } class选择器 适合class属性值的选择器   .classSelector{   background-color:cyan;   } id选择器 适合id属性值的选择器   #idSelector{   background-color:red;   } 标签选择器 单一的标签选择器   span{   background-color:gold;   display:b
yechaoa
2022/06/10
3290
前端学习(15)~css3学习(九):选择器详解
CSS3在CSS2基础上,增强或新增了许多特性, 弥补了CSS2的众多不足之处,使得Web开发变得更为高效和便捷。
Vincent-yuan
2020/03/19
5570
CSS3选择器(全部)[通俗易懂]
CSS3选择器再CSS2.1选择器的基础上增加了属性选择器、伪类选择器、过滤选择器,减少了对HTML类名或ID名的依赖,避免了对HTML结构的干扰,让编写代码更加轻松。
全栈程序员站长
2022/09/14
7600
学习《CSS选择器Level-4》不完全版
选择器是CSS的核心组件。本文依据W3C的Selectors Level 4规范,概括总结了Level1-Level4中绝大多数的选择器,并做了简单的语法说明及示例演示。希望对程序员有所助益。
毛瑞
2019/04/10
1K0
学习《CSS选择器Level-4》不完全版
零基础学前端开发之CSS3深入选择器
如果需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,可以使用相邻兄弟选择器(。
张哥编程
2024/12/19
1120
零基础学前端开发之CSS3深入选择器
CSS3选择器介绍及用法总结[通俗易懂]
CSS3新增了很多强大的选择器 它可以让我们少写一些js事件脚本 我们先来看看各个版本的选择器有哪些 注: ele代表element元素 attr代表attribute属性,val代表value属性值 :xxx都属于伪类选择器,::xxx都属于伪元素选择器 有名字的选择器我尽量细分了 #CCS1选择器#
全栈程序员站长
2022/09/14
1.5K0
CSS3选择器介绍及用法总结[通俗易懂]
CSS基础--属性选择器、伪类选择器
属性选择器 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>属性选择器</title> <style> .red{ color: red; } .blue{ color: blue; } .darkred{ color: darkred;
eadela
2019/09/29
1.1K0
《CSS选择器世界》读书笔记
CSS选择器可分为4类:选择器(如body{})、选择符(如相邻兄弟关系选择符+)、伪类(如:hover)和伪元素(如::before)。
kai666666
2024/07/11
1530
《CSS选择器世界》读书笔记
CSS选择器
像一串英文字母aaa会看做一行,浏览器认为中文可以随意换行,英文单词或者连字符可以换行,如果是连续的字母没有意义,不会换行,可以用下面的进行换行
Y编程者
2024/08/10
2450
CSS选择器
css之选择器
CSS(Cascading层叠 Style样式 sheets表),是用来为网页添加样式的代码。 css选择器的作用是用于选中元素,以便为其添加样式 1.基础选择器
bamboo
2019/01/29
8070
css之选择器
CSS选择器
标签选择器 : 元素名称 |div{...}|使用标签选择元素,优先级最低,使用最广泛|
王凡汎
2020/03/08
2.7K0
前端学习笔记之CSS选择器
    id > 类 > 标签 > 通配符(也算直接选中) > 继承 > 浏览器默认(即没有设置任何属性)
Jetpropelledsnake21
2019/02/15
2.1K0
css3 选择器
  以前学习css的时候总是看见一个效果就看一下,没有系统的学习,最近看见了这个css3的网站,打算系统学习下,今天要跟大家分享的是css3的选择器。
py3study
2020/01/15
5740
CSS选择器笔记
这几天拿出来看了一下,发现很多都忘记了。所以,我决定把它们贴在这里,方便以后查看。这对其他朋友应该也是有用的,毕竟选择器是制作网页效果的第一步。
ruanyf
2018/09/10
5560
全栈之前端 | 2.CSS3基础知识之选择器学习
在上一章节,作者针对CSS选择器做了一个简单介绍有那些选择器, 本章将表中的选择器进行一一实践展示。
全栈工程师修炼指南
2023/10/31
2970
全栈之前端 | 2.CSS3基础知识之选择器学习
CSS选择器如此之多,你了解多少?
css选择器非常之多,常见的如class选择器,id选择器,标签选择器等等。每个的用法都有所区别,虽然很多都能到达同样的效果,但还是有一些更优的选择。
Javanx
2019/09/04
4990
相关推荐
CSS选择器
更多 >
LV.1
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验