我读到了 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浏览器测试本地文件)
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>
您无法避免这条规则,也不应该这样做,因为段落的目的是表示文本段落。