CSS 层叠(后代)样式

问题描述 投票:0回答:1

我读到了 CSS 中的后代选择器,但无法让它工作:

<!DOCTYPE html>
<html>
<head>
<style>
.c1 div { background-color:red;}
h1 {color: #00b339}
</style>
</head>
<body>
<h1>Demo of the descendant selector</h1>
<p class="c1">Outer paragraph <div class="c2">Inside nested element</div></p>
</body>
</html>

在样式选择器中,类

.c1
和内部
div
之间有一个空格 如果我用逗号替换该空格,样式选择器定义的工作方式类似于 OR,并且所有类“c1”和所有
div
元素都会受到影响。但有了这个空间,内部
div
元素就不会发生任何事情。目标是仅将样式应用于
Inside nested element

无论我是通过类还是 html 类型定义构造该后代。

我做错了什么? (我正在win11上使用当前的chrome浏览器测试本地文件)

html css css-selectors
1个回答
0
投票

https://www.w3.org/TR/html401/struct/text.html

P元素代表一个段落。它不能包含块级 元素(包括 P 本身)。

当您在 DevTools 中检查该元素时,您会注意到浏览器在打开

p
标签之前关闭了
div
标签,以避免
div
位于
p
标签内。在
div
的结束标签之后,它会打开一个空的
p
元素。

<p class="c1">Outer paragraph</p>
<div class="c2">Inside nested element</div>
<p></p>

您无法避免这条规则,也不应该这样做,因为段落的目的是表示文本段落。

© www.soinside.com 2019 - 2024. All rights reserved.