我很好奇为什么一些浏览器需要特殊邀请才能执行相同的CSS布局命令。 有人可以给我解释一下吗?
例如,CSS格式化:
box-sizing: border-box;(请考虑我的框的边框尺寸!)现在火狐和Safari需要特殊邀请:
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
对于像我这样的普通猫来说,这似乎是在说:
- 浏览器:我给出的尺寸是我的盒子的边框!
- Firefox:你也一样。
- Safari:你也是。
我很好奇为什么一些浏览器需要特殊邀请才能执行相同的CSS布局命令。 有人可以给我解释一下吗?
例如,CSS格式化:
box-sizing: border-box;(请考虑我的框的边框尺寸!)现在火狐和Safari需要特殊邀请:
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
这是不同浏览器引擎支持不同功能的结果。这些指令旨在告诉浏览器呈现引擎,您正在尝试使用一项仍处于开发/测试阶段或未包含在CSS规范中的功能。请注意,并非所有浏览器都使用不同的渲染引擎。
因为这些属性还没有被W3C标准化,它们仍处于草案阶段,因此供应商实现了自己的版本 - 使用前缀来避免与其他浏览器实现冲突,或在规范最终确定后的最终实现。
对于以上回答的补充。当您列出所有属性时,请将标准属性放在最后,如下所示:
-moz-border-radius: 10px 5px;
-webkit-boder-radius: 10px 5px;
border-radius: 10px 5px;
border-radius
标准属性,当你首先列出标准属性时。border-radius: 10px 5px;
-moz-border-radius: 10px 5px;
-webkit-boder-radius: 10px 5px;
当您在Safari中浏览此网站时,它将首先使用标准属性,然后使用-webkit-
属性进行覆盖。问题在于这两种实现的规范是不同的。标准属性使得左上角和右下角为30像素圆角,而右上角和左下角为10像素圆角。
另一方面,-webkit-前缀属性使所有角落都相同:一个大小为30x10像素的省略号。
这意味着这些函数仍处于开发阶段,可能不支持标准规定的所有功能。