CSS3中的声明块后面的分号在此之后丢弃显式声明块

时间:2017-04-20 07:47:06

标签: css syntax

<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>

鉴于上面的片段,跨度的颜色不会更改为蓝色。

我想了解丢弃以下声明块的原因是什么?

我理解这些不是陈述,并且在每个声明块之后不需要分号,但这种行为是隐藏的并且会产生意外行为。

提前致谢。

1 个答案:

答案 0 :(得分:0)

CSS中的分号;用于分隔多个声明。而不是终止他们。这也是为什么你可以省略一个块内的最后一个分号。

括号中的分号 基本上只是无效语法

这就是CSS Parser停止并且不会解释以下声明的原因。

但是,不同的浏览器都有自己的CSS解析器/渲染引擎,这意味着解析器的行为可能不同。如果您想查看为什么解析器的行为,那么您需要查看源代码。一个好的开始是Gecko(由Mozilla开发),因为它的Free和OpenSource。

  

https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Source_Code/Mercurial