2

我们使用这样的css规则......

-moz-border-radius: 8px;
-webkit-border-radius: 8px;
-o-border-radius: 8px;
border-radius: 8px;  /* this must be at last ? */

为什么我一开始不应该像这样使用它......

border-radius: 8px; /* why not to use at first ? */
-moz-border-radius: 8px;
-webkit-border-radius: 8px;
-o-border-radius: 8px;

更新

谁能给我看一个最初使用它时发生错误的例子?

4

2 回答 2

7

这个想法是,一旦规则标准化,就会推翻其他样式。由于标准规则在底部,如果浏览器知道如何使用,它将被用来代替供应商特定的规则。这允许标准化,同时仍支持当前的实现。

在您的第二个示例中,如果浏览器同时支持这两种规则,则供应商特定规则将覆盖标准化规则。供应商特定的实现可能与规范有所不同,一旦最终确定,最好遵循统一规范,以便更轻松地跨浏览器更改。

于 2013-04-24T03:08:12.633 回答
0

在编写 CSS3 属性时,现代智慧是最后列出“真实”属性,然后首先列出供应商前缀:

.not-a-square {
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px;
  border-radius: 10px;
}

为什么这种排序属性的方法如此普遍?这是它的样子“the wrong way":

.not-a-square {
  border-radius: 10px;
  -moz-border-radius: 10px;
  -webkit-border-radius: 10px;
}

即使以“错误的方式”进行操作,无论如何边界半径不会永远相同吗?快速调查可能会让您得出结论,它会,而这种属性排序是相当无稽之谈。

很久很久以前:不支持任何属性,顺序无关紧要。过去:仅支持供应商前缀,顺序无关紧要。现在:支持供应商前缀和实际属性。如果前缀是最后一个,它将覆盖实际属性,但无论如何两者都是相同的。未来:仅支持实际属性,顺序无关紧要。

更多关于

于 2013-04-24T04:10:09.807 回答