CSS - 选择器详解 - 子代、后代选择器详解 - 伪类选择器 - 测试

news2024/9/22 19:32:09

目录

  • 测试准备:
  • 子代选择器 >
    • 测试代码:
    • 指定id的子代选择器
  • 后代选择器 (以空格隔开)
    • 指定 id 的后代选择器
    • 指定 class 类 的后代选择器
    • 多空格后代选择器详解 (特别重要)
  • 伪类选择器 :
  • 参考链接:

测试准备:

新建一个测试项目文件夹 test,然后在 test 文件夹内新建一个名为 css 的文件夹,创建一个名为 style.css的文件,最后在test文件夹下新建一个 test.html 文件。
test
| —— |
| ——css —— style.css
|
test.html

子代选择器 >

选择子节点
父节点 (父标签)
|
子节点 (子标签)

eg:

<ul>
  <li> </li>
  <li> </li>
  <li> </li>
</ul>

ul 是父标签,而 li 是子标签

既然是子代选择器,那么不可能会选择到孙子辈,对吧,如下所示:

<ul id="father">
  <li id="son"> 
	<ul id="grandson">
	</ul>
  </li>
  <li> </li>
  <li> </li>
</ul>

在 CSS 中,我们使用如下选择器示例

ul > li

那么就是在指定只有 idfatherul 下的,idsonli 标签,而不会去影响 idgrandson 的 ul 标签。

测试代码:

Html 文件代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Muxiu Test</title>
<link rel="stylesheet" type="text/css" media="screen" href="css/style.css" />
</head>
<body>

<h2>JavaScript 对象</h2>
	
	<ul>
        <li id="demo1">
			<p id="demo2">muxiu1</p>

		</li>
		
		<li id="demo3">
			<p id="demo4">muxiu2</p>

		</li>

		<button onclick="myfunction(this)">点我后就变帅变靓</button>
        
	</ul>

	
</body>
</html>

css 文件代码:(先注释代码)

/* ul > li{

    list-style: none;
} */

初始图:
在这里插入图片描述
按钮不用管,只是随便加的。重点看列表,看到那个 黑点了吗?
每一个列表默认会存在这个黑点,代表它们是列表,所以接下来的操作,就是让它消失,用 CSS 样式,指定 ul>li 子代选择器样式

将 css 文件注释解除:如下所示

ul > li{

    list-style: none;
}

结果图:(重新打开 HTML文件) 发现黑点消失,list-style 是指定列表样式的属性,none 代表不要黑点。

在这里插入图片描述

指定id的子代选择器

ul#father > li#son

意思是 ul 标签 id 为 father 的 li 标签 id 为 son 的选择器

html 测试代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Muxiu Test</title>
<link rel="stylesheet" type="text/css" media="screen" href="css/style.css" />
</head>
<body>

<h2>JavaScript 对象</h2>
	
	<ul id="demo">
        <li id="demo1">
			<p id="demo2">muxiu1</p>

		</li>
		
		<li id="demo3">
			<p id="demo4">muxiu2</p>

		</li>

		<button onclick="myfunction(this)">点我后就变帅变靓</button>
        
	</ul>

</body>
</html>

css 文件代码:

ul#demo > li#demo1{

    list-style: none;
}

结果图:
在这里插入图片描述
看来,是把iddemoul 标签内 iddemo1li 标签的 list-style 设置为 none 了。

还有这里就没弄 类选择器的测试了,把id 选择器改成 class 类选择器,不用多说了吧。

后代选择器 (以空格隔开)

指定第一个为祖宗节点,第二个的作为姓氏,那么每一个该姓氏的节点,都会被影响到。

祖宗节点 (祖宗标签)
|
子节点 (子标签)
|
孙子节点 (孙子标签)
|
曾孙子节点 (曾孙子标签)
|
曾曾孙子节点 (曾曾孙子标签)
|
。。。

特别特别注意:在这里每一个空格都是有其意义的,有空格和没空格,是两个不同的概念。

指定 id 的后代选择器

指定 class 类 的后代选择器

div.contain .blue{color:blue;}
以上规则的结果为:“所有class属性值为contain的div元素,其后代中class属性值为blue的任何元素显示为蓝色字体”。

div.contain.blue{color:blue;}
以上规则的不同之处在于,‘.contain’ 类选择器 与’.blue’ 类选择器之间少了一个空格!少了空格,以上选择器就不是后代选择器了,而是另外一种选择器:“多类选择器”。

多类选择器:指的是 div 标签,定义了多个类,如下所示:

<div class="contain blue">

</div>

div 标签定义了多个类

通过这样讲解,可以类比上面的子代选择器,结合类 class 和 id 选择器,灵活运用这两种选择器。

多空格后代选择器详解 (特别重要)

有时候会看见某些 css 文件内有多个空格隔开的样式,那么如何理解其中道道?看测试。

Html 文件测试代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Muxiu Test</title>
<link rel="stylesheet" type="text/css" media="screen" href="css/style.css" />
</head>
<body>

<h2>JavaScript 对象</h2>
	
	<ul id="demo">
        <li id="demo1">
			
			<p id="demo2">muxiu1</p>
			<ul>
				<li>
					<p id="demo2">muxiu1.1</p>
				</li>
			</ul>

		</li>
		
		<li id="demo3">
			<p id="demo4">muxiu2</p>

		</li>

		<button onclick="myfunction(this)">点我后就变帅变靓</button>
        
	</ul>

	
</body>
</html>

css 文件测试代码:

ul li {

    list-style: none;
    /* color: green; */
}

初始结果图:

在这里插入图片描述

可以看到,由于设置了 list-style:none 的样式配置,列表的黑点消失了。

如果把 list-style 样式取消了,即注释掉 css 文件内的所有 css 样式,结果如下:

/* ul li{

    list-style: none;
    color: green;
} */

在这里插入图片描述

好了,接下来重头戏来了。

Html 文件的代码不变,css 文件的代码修改如下:

ul li p{

    list-style: none;
    color: green;
}

color 是修改字体颜色的样式属性,list-style 是列表黑点是否表现的样式属性。

那么接下来,重新打开 Html 文件。结果如下所示:

在这里插入图片描述
可以看到,字体改变了颜色,但是列表的黑点却显示了,之前是已经测试过的,黑点是消失的,但是如今却显示出来了,所以列表的样式配置没了,只有 p 标签的样式存在。所以这个后代选择器的多个空格,我们可以推导出来,只有最后的才是真正的起作用的对象,这里是 p 标签,那么只对 p 标签,所拥有的样式属性才能生效,其他的不属于 p 标签的样式属性,则被忽略了。

这一段话,非常非常重要,经测试得出。

接下来还有。

Html 文件测试代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Muxiu Test</title>
<link rel="stylesheet" type="text/css" media="screen" href="css/style.css" />
</head>
<body>

<h2>JavaScript 对象</h2>
	
	<ul id="demo">
        <li id="demo1">
			
			<p id="demo2">muxiu1</p>
			<ul>
				<li>
					<p id="demo2">muxiu1.1</p>
				</li>
			</ul>

		</li>
		
		<li id="demo3">
			<p id="demo4">muxiu2</p>

		</li>

		<button onclick="myfunction(this)">点我后就变帅变靓</button>
        
	</ul>
	<!-- 新增 -->
	<p>muxiu3</p>

	
</body>
</html>

css 文件测试代码:

ul li p{

    list-style: none;
    color: green;
}

运行结果:

在这里插入图片描述
可以看到iddemoul 标签外的 p 标签不受影响,所以这个 ul li p 样式,被限制在iddemoul 标签内

伪类选择器 :

一个或两个冒号后的都是伪类选择器,肯定没有三个冒号

参考链接:

浅谈CSS选择器中的空格 - 爱码网

总结30个css选择器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/392797.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WebSocket与Socket、TCP、HTTP的关系

目录&#xff1a;1、名词解析&#xff1b;2、WebSocket简介与原理&#xff1b;3、WebSocket和Http的关系和异同点&#xff1b;4、WebSocket与Socket的区别&#xff1b;5、Socket和TCP/IP&#xff1b;6、一个应用程序的通信链路&#xff1b;1、基础名词解析&#xff1a;&#xf…

十三、Spring对事务的支持

1 事务概述 什么是事务 在一个业务流程当中&#xff0c;通常需要多条DML&#xff08;insert delete update&#xff09;语句共同联合才能完成&#xff0c;这多条DML语句必须同时成功&#xff0c;或者同时失败&#xff0c;这样才能保证数据的安全。多条DML要么同时成功&#xf…

Antlr4:使用grun命令,触发NoClassDefFoundError

1. 意外的发现 在学习使用grun命令时&#xff0c;从未遇到过错误 最近使用grun命令&#xff0c;却遇到了NoClassDefFoundError的错误&#xff0c;使得grun测试工具无法成功启动 错误复现&#xff1a; 使用antlr4命令编译Hello.g4文件&#xff0c;并为指定package&#xff08;…

人工智能学习07--pytorch10--目标检测:RCNN、Faster RCNN

括号里都是弹幕大佬的高赞发言 1 前言 Two Stage检测过程分两步走 前景&#xff1a;需要检测的目标 背景&#xff1a;不感兴趣的 生成候选框&#xff1a;将感兴趣目标框选出来&#xff0c;但是没有进行分类 具体使用哪一种&#xff0c;根据项目需求 自定义数据集 自己写一…

CAS 与 ABA问题

本文通过学习&#xff1a;周阳老师-尚硅谷Java大厂面试题第二季 总结的CAS和ABA相关的笔记一、CAS1、CAS定义CAS Compare-And-Swap&#xff0c;它是CPU并发原语。比较当前工作内存中的值和主物理内存中的值&#xff0c;如果相同则执行规定操作&#xff0c;否者继续比较直到主内…

【MySQL】第18章_MySQL8其它新特性

第18章_MySQL8其它新特性 1. MySQL8新特性概述 MySQL从5.7版本直接跳跃发布了8.0版本&#xff0c;可见这是一个令人兴奋的里程碑版本。MySQL 8版本在功能上做了显著的改进与增强&#xff0c;开发者对MySQL的源代码进行了重构&#xff0c;最突出的一点是多MySQL Optimizer优化器…

gitHub远程库

创建远程仓库注册一个gutHub账户点击号&#xff0c;在点击New repository新建一个远程仓库仓库名一般跟本地库的名称一致public公共的开源private私有的不公开远程仓库操作创建远程仓库别名基本语法git remote -v &#xff1a; 查看当前所有远程地址别名git remote add 别名 远…

ABAP ALV和OOALV设置单元格颜色,编辑

首先给大家分享一篇博客: REUSE_ALV_GRID_DISPLAY_LVC-可编辑单元格 文章目录单元格编辑单元格/行-颜色效果展示**需求:**我是想实现某个单元格可根据数据来判断是否是可以进行编辑的或要添加一个什么样的颜色. 我们需要用到下面的三个结构 ALV 控制: 单元格的类型表:LVC_T_ST…

Nios II软件开发流程简介(含工程)

软件安装 Nios II Eclipse软件打不开 ​ 安装完成quartus后&#xff0c;想要打开Nios II Eclipse软件&#xff0c;点击软件后发现没有任何反应。 ​ 这时要到安装目录C:\intelFPGA_pro\20.3\nios2eds\bin下&#xff0c;打开readme文件。 ​ 按readme中的内容下载eclipse-cpp-…

VTK中如何 搜索 目标点 最近的点或者点集( vtkPointLocator )

背景: 在vtk使用过程中,我们有时要搜索点或者cell最近的 单元, 仔细看源码,有时无法判断其具体是什么样子,因而这里做了可视化处理,方便我们更深刻的理解 vtkPointLocator 类型函数的使用; 过程: 1.了解其继承关系是必要的: 2.开始探索该函数的一些效果: 我们会将原始数据…

vmware安装redhat enterprise linux server 9.1

vmware安装redhat enterprise linux server 9.11、安装系统1.1 镜像文件2、更新系统2.1 注册系统到redhat软件仓库2.2 更新系统1、安装系统 1.1 镜像文件 官网下载&#xff1a;https://developers.redhat.com/products/rhel/download 2、更新系统 2.1 注册系统到redhat软件…

【编写中】html5+go+websocket不到150行代码,实现一个在线实时聊天的功能

阮一峰websocket 相关参考 websocket 什么是websocket 在了解什么是websocket之前&#xff0c;我们下说一说http&#xff0c;因为HTTP我们太熟了。我们知道&#xff0c;HTTP是一种基于应用层的网络协议&#xff0c;往往都是一个请求&#xff0c;一个相应。websocket呢&#…

为啥用 时序数据库 TSDB

前言 其实我之前是不太了解时序数据库以及它相关的机制的&#xff0c;只是大概知晓它的用途。但因为公司的业务需求&#xff0c;我意外参与并主导了公司内部开源时序数据库influxdb的引擎改造&#xff0c;所以我也就顺理成章的成为时序数据库“从业者”。 造飞机的人需要时刻…

VMware vCenter Server的安装和使用

准备工作 首先去官网下载好VCenter Server&#xff0c;然后准备安装&#xff0c;我这里下载的是6.0对应的镜像为VMware-VIMSetup-all-6.0.0-2656757.iso 需要注意&#xff1a; 开始安装 和安装其他操作系统一样&#xff0c;把镜像放入光驱或解压缩&#xff0c;我这里是在…

Dropout Reduces Underfitting论文解读

Dropout 在欠拟合的应用Dropout Reduces Underfitting&#xff08;2023.3.2&#xff09;写在前面摘要一、简介二、重新审视过拟合和欠拟合三、Dropout如何减少欠拟合四、方法五、实验早期随机失活分析晚期随机失活&#xff08;Late Dropout&#xff09;六、下游任务七、相关工作…

【零代码工具推荐】Max Creation Graph (MCG) 可视化图形编程工具

从3dMax 2016开始新加入了一个很牛great的功能&#xff0c;也就是“MCG”全称是Max Creation Graph&#xff0c;MCG可以让用户使用全可视化节点工作流程来创建修改器&#xff0c;几何体工具插件&#xff0c;使用MCG&#xff0c;可以创建一个新的插件&#xff0c;没错是插件&…

【大数据实时数据同步】超级详细的生产环境OGG(GoldenGate)12.2实时异构同步Oracle数据部署方案(下)

系列文章目录 【大数据实时数据同步】超级详细的生产环境OGG(GoldenGate)12.2实时异构同步Oracle数据部署方案(上) 【大数据实时数据同步】超级详细的生产环境OGG(GoldenGate)12.2实时异构同步Oracle数据部署方案(中) 【大数据实时数据同步】超级详细的生产环境OGG(GoldenGate…

要点提炼|《数字中国建设整体布局规划》,看这一篇就够了!

《数字中国建设整体布局规划》/// 近日&#xff0c;中共中央、国务院印发了《数字中国建设整体布局规划》&#xff08;以下简称“《规划》”&#xff09;&#xff0c;作为影响中国未来发展的重磅文件&#xff0c;被业界评价为“数字挂帅时代来临”。《数字中国建设整体布局规划…

【持续集成】Jenkins详细教程

文章目录一、jenkins是什么&#xff1f;二、CI/CD是什么&#xff1f;三、使用Jenkins进行PHP代码(单元)测试、打包。1.General2.源码管理3.构建触发器4.构建环境5.构建6.构建后操作7.其他相关配置四、进行jenkins project 构建五、构建结果说明六、jenkins权限管理最后&#xf…

【拼图】拼图游戏-微信小程序开发流程详解

还记得小时候玩过的经典拼图游戏吗&#xff0c;上小学时&#xff0c;在路边摊用买个玩具&#xff0c;是一个正方形盒子形状&#xff0c;里面装的是图片分割成的很多块&#xff0c;还差一块&#xff0c;怎么描述好呢&#xff0c;和魔方玩具差不多&#xff0c;有没有听说叫二维的…