为什么有些属性是定期声明的,而另一些则需要连字符?
.box {
width: 500px;
margin: 20px;
border: solid black 5px;
-box-sizing: border-box;
}
虽然CSS在技术上不正确,但您看到的是供应商前缀。供应商前缀用于不符合标准或未完全实现W3C建议的规范。这些在浏览器仍在实现的一些CSS3规范中是显而易见的。
一些示例是box-sizing
、transform
、transition
。
一些常见的前缀是
- 适用于Firefox/Mozzilla的
-moz-
- 适用于Safari/Chrome的
-webkit-
- 用于IE/Edge的
-ms-
- 歌剧
-o-
- Konqueror的
-khtml-
您可能想了解Mozilla开发者网络对供应商前缀的看法。
报价:
浏览器供应商有时会在实验性或非标准CSS属性中添加前缀,因此开发人员可以进行实验,但浏览器行为的变化不会在标准过程中破坏代码。开发人员应该等到浏览器行为标准化后再包含不固定的属性。
这些都是实验性的CSS属性,没有官方定义或支持。对于box-sizing
,请参阅MDN中的浏览器兼容性部分。
此外,我不认为有一个浏览器像您建议的那样支持-box-sizing
,它要么是-webkit-box-sizing
,要么是-moz-box-sizing
。