<html>
<head>
<style>
p {
color: red;
};
span {
color: blue;
}
</style>
</head>
<body>
<p> This is a paragraph </p>
<span> This is a span </span>
</body>
</html>
鉴于上面的片段,跨度的颜色不会更改为蓝色。
我想了解丢弃以下声明块的原因是什么?
我理解这些不是陈述,并且在每个声明块之后不需要分号,但这种行为是隐藏的并且会产生意外行为。
提前致谢。
答案 0 :(得分:0)
CSS中的分号;
用于分隔多个声明。而不是终止他们。这也是为什么你可以省略一个块内的最后一个分号。
括号中的分号 基本上只是无效语法。
这就是CSS Parser停止并且不会解释以下声明的原因。
但是,不同的浏览器都有自己的CSS解析器/渲染引擎,这意味着解析器的行为可能不同。如果您想查看为什么解析器的行为,那么您需要查看源代码。一个好的开始是Gecko(由Mozilla开发),因为它的Free和OpenSource。
https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Source_Code/Mercurial