CSS层级选择器的定义是什么,有几种类型
Admin 2022-08-26 群英技术资讯 851 次浏览
在实际应用中,我们有时候会遇到“CSS层级选择器的定义是什么,有几种类型”这样的问题,我们该怎样来处理呢?下文给大家介绍了解决方法,希望这篇“CSS层级选择器的定义是什么,有几种类型”文章能帮助大家解决问题。
CSS层级选择器 是根据HTML节点树之间的关系提供的选择器用法,所以说如果想要很好的学习层级选择器 首先要搞清楚HMTL元素之间的关系是什么样子的。
先看下面这段HTML代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HTML测试代码</title>
</head>
<body>
<div>
<p></p>
<p></p>
</div>
<div>
<span></span>
<button></button>
<span></span>
</div>
</body>
</html>将如上代码可以画成如下节点树,如下图所示

现在来我们看一个HTML元素之间的关系,在HTML页面中元素之间的关系存在着如下所示的三种关系:
父级与子级之间的关系 :在上述代码中,左边<div>元素是<p>元素的的父级元素,反之<p>是<div> 的子级元素,当然这种父子结构还有跟多。
兄弟之间的关系 :在上述代码代码中,<p>元素和<p>元素是兄弟元素,<span>元素和<button> 元素也是兄弟元素。
祖先与后代之间的关系 :在上述代码代码中,<p>元素是<body>元素的后代元素,反之<body>元素是<p>元素的祖先元素。
层级选择器种类
根据HTML元素之间的3种关系,CSS的层级选择器提供了如下4种用法:
后代选择器:将某个元素当做祖先元素,定位该元素的所有后代元素。
子级选择器:将某个元素当做父级元素,定位该元素的所有子级元素。
相邻兄弟选择器:将某个元素作为目标元素,定位与该目标元素拥有同一个父级元素的下一个指定元素
普通兄弟选择器:是将某个元素作为目标元素,定位与该目标元素拥有同一个父级元素的之后任意指定元素。
选择符
CSS提供的4个选择符,对应着CSS层级选择题的四种用法,如下所示
表示后代关系的空格( )
表示父子关系的尖括号(>)
表示相邻兄弟关系的加号(+)
表示兄弟关系的波浪号(~)
在Web开发中,用的较多的是前两个-后代选择器和子选择器。
我们先来看一段代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>使用CSS3层次选择器</title>
<style type="text/css">
* {margin:0;padding:0;}
body {width: 300px; margin:0 auto;}
div{margin:5px;padding:5px;border:1px solid #ccc;}
</style>
</head>
<body>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4
<div>5</div>
<div>6</div>
</div>
<div>7
<div>8
<div>9
<div>10</div>
</div>
</div>
</div>
</body>
</html>
后代选择器
用来选择某个元素的所有的后代元素,比如上面的html中,使用如下的样式,会产生什么效果呢?
body div { background-color: yellow; }这里将body元素的后代div元素设置背景色为yellow。也就是说,所有的div都被染上了黄色。

子选择器
用于选择某个元素下(可能是多个元素)所有的一级子元素。比如,我们使用下面的选择器及样式,会有什么效果呢?
body > div { background-color: red; }这样设置后,body下的一级div元素,这里是内容为1、2、3、4、7的div元素设置背景色为红色。

相邻兄弟选择器
用于选取某个(或某些)元素同级目录下的下一个元素。比如,这里我们使用下面样式设置后的效果是什么样的呢?
.active + div { background-color: green; }这里我们设置了.active选择器的相邻兄弟节点,也就是第二个div元素,将其背景色设置为了绿色。

通用兄弟选择器
用于选取某个(或某些)元素的同级目录下所有的后面的标记。它和相邻兄弟选择器类似,需要在同一个父元素中。
比如使用下面的代码,影响到的样式:
.active ~ div { background-color: pink; }这里将类名为"active"的元素(这里为第一个div)的通用兄弟(这里是内容为2、3、4、7的div)设置了背景色为粉红色。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
本篇文章给大家带来了关于css的相关知识,其中主要介绍了关于如何解决div外边距重合的相关问题,外边距的重叠只产生在普通流文档的上下外边距之间,只有块元素会发生外边距重叠,行内元素和行内块元素都不会发生外边距重叠问题,下面一起来看一下,希望对大家有帮助。
css3只能实现一次动画吗css3不是只能实现一次动画。利用animation-iteration-count即可。animation-iteration-count属性定义动画应该播放多少次。默认值为一。语法animatio
第一点,和我的相符,但我把它改成了position:absolute,问题依然存在。第二点、第三点和我的情况不符。接着就是一层一层地追,发现把这个层(A)比较高一级的父层(B)加上position:relative;z-index:100;就好了,原来是B层比与相邻的层(C)低了,导致B层里的任何一层无论怎么设z-index,也高不过与B层相邻的那个C层。第 ...
你知道在css中怎么实现完美圆角框吗?其实这个技巧说难也不难,下文有实例供大家参考,对大家了解操作过程或相关知识有一定的帮助,而且实用性强,希望这篇文章能帮助大家,下面我们一起来了解看看吧。
css设置表格外边框加粗的方法可以利用border属性设置table外边框的宽度,border 简写属性在一个声明设置所有的边框属性。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008