CSS中最后一行没有结束标记“;”的原因?

时间:2012-08-21 13:12:31

标签: css

我已经使用CSS一段时间了,我发现在很多教程和练习中,CSS标签的最后一行没有“;”添加到它。例如:

ul li:hover ul { 
    display: block
}

ul li ul {
      list-style: none;
      position: absolute;
      display: none;
      width: 104px;
      height: 100px;
      background-image: url(../_img/nav/dropdownbg.1.png);
      background-repeat: no-repeat;
      background-position: center;
      background-position: top
}

正如您所看到的,有两个例子。一个只有一行,另一行在一个标签中有不同的命令。我想知道为什么以及为什么要这样做?!!在学校,他们没有告诉我们任何有关这方面的事情。我只用“和”关闭最后一行或唯一一行它完美无缺。

那么,这是做到这一点的原因?它更安全吗?

5 个答案:

答案 0 :(得分:5)

Šime Vidas' response相关问题在此处也有效。分号是分隔符,因此最终属性不需要分隔。

但是,我不推荐它,因为在你需要在CSS规则的末尾添加另一个属性的情况下,你很可能会错过分号的需要而你的CSS会破坏

答案 1 :(得分:2)

specs

ruleset     : selector? '{' S* declaration? [ ';' S* declaration? ]* '}' S*;

正如您所看到的那样,并不意味着在大括号中终止;

答案 2 :(得分:1)

分号是一个分隔符:它将事物分开。最后一项不需要与后面的任何内容分开。

答案 3 :(得分:1)

分号分隔不同的线条,所以如果你到达了最后一行,就不需要放入分号,因为你会看到一个不仅关闭线条的支撑,而且还会关闭块。

无论如何,我个人更愿意放入分号,但你可以自由地将它排除在外。

同时退房; http://www.pagetoscreen.net/journal/item/the_missing_semi-colon/

答案 4 :(得分:0)

由于它是规则中的最后一行,因此它与下一个规则之间不存在歧义,因为没有。这就是为什么可以离开最后一个分号。否则它不会带来任何好处或性能提升。