html - CSS * Selector 奇怪的处理

标签 html css css-selectors

我正在研究浏览器及其对 css 和 html 代码的处理方式,对此进行测试并看到奇怪的结果并且无法理解。这是一项研究。所以它不是真正的代码。

我在使用 CSS * 选择器时注意到一个问题。让我解释一下:

看下面的例子:

p * { color:red; }

这意味着 p 元素内的所有标签都必须是红色的。 一些例子:

<p>
<div>
text <!-- Must be red but not !-->
</div>
<p>
text <!-- Must be red but not !-->
</p>
<span>
text <!-- Must be red but not !-->
</span>
</p>

出现这些问题有什么原因吗?逻辑原因?

最佳答案

W3 XHTML 验证器会提示您使用嵌套的 p 标签。
想一想:“一段中的一段”。从语法上讲,p 中的 div 在所有 HTML 标准中都是无效的。此外,当使用符合标准的 HTML 解析器时,不可能将 div 元素放在 DOM 中的 p 中,因为开始的 div 标记将自动关闭 p 元素。可以查看更多详情here

但是,如果您想为段落中的元素设置样式,则可以使用内联标记,例如 span

关于html - CSS * Selector 奇怪的处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9750107/

相关文章:

css - CSS 可以检测一个元素的子元素数量吗?

html - 全宽 Youtube 嵌入英雄背景视频

html - 如何绝对定位:before pseudo element of child relative to parent?

html - 通过xpath选择器从html标记列表中选择特定的html标记

javascript - 扩展 flexbox div,以便在我附加 div 时它可以扩展

javascript - Jquery循环通过onmouseover,有多个div

css - 添加背景图像到一串动态文本的末尾,在文本后面

html - 使用 xsl 为 excel 生成 html 需要更多格式

javascript - jQuery 每个函数用于特定 ul 和 li 标签下的所有图像

css - 使用 apoc.load.html 时,是否可以返回完整的 HTML 而不仅仅是文本?