黄子涵

查漏补缺——说说后代选择器和子选择器

问题

如题所示

答案

首先,什么是选择器呢?我的理解是CSS选择器可以选定某类元素进行样式控制。

css选择器是什么?css选择器有哪些类型?

所以后代选择器和子选择器也是选择某类元素进行样式控制的。

看它们的名字后代选择器和子选择器应该属于复合选择器。复合选择器是由基本选择器复合而成。基本选择器有哪几种呢?

基本选择器:样式设计的必备工具

根据上面,我们可以知道基本选择器有:

  • 元素选择器

  • 类选择器

  • ID选择器

  • 通用选择器(少用)

  • 属性选择器(少用)

元素选择器是这样的表示的:

元素名 {
}

类选择器是这样表示的:

.类名 {
}

标签选择器是这样的:

#标签名 {
}

根据上面常用的选择器,我们来看看这两个复合选择器:

后代选择器和子选择器

子代选择器和后代选择器

那么后代选择器是什么样的呢?

<div class="hzh-about-site hzh-about-info">
<section-title><span></span>关于博客</section-title>
</div>
...
<div class="hzh-about-me hzh-about-info">
<section-title id="hzhGuestbook"><span></span>给我留言</section-title>
</div>
.hzh-about-info span {
color: red;
margin-right: 10px;
}

image

这就是源码里的后代选择器,选择器中间使用空格隔开的复合选择器就是后代选择器,它所选择的对象是后代,也就是所有的儿子和孙子,这里包含.hzh-about-info类名的元素和span标签是祖先和孙子的关系,它们之间的关系属于后代的关系,span标签属于包含.hzh-about-info类名的元素的后代,所以你会看到它们变红色。

再来看看子选择器的相关源码:

.hzh-about-info > span {
color: red;
margin-right: 10px;
}

从上面这份代码,可以看出子选择器是使用>(大于号)隔开。

子选择器和后代选择的区别是子选择器选择的是元素的第一个孩子,看上面的结构span 标签不是包含.hzh-about-info类名的元素的第一个孩子,所以看到的效果,两个爱心都不会变红。

image

posted @   黄子涵  阅读(139)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示