浏览器是否有理由为CSS新功能添加前缀,而不是让网站站长使用非前缀版本?
例如,背景渐变的示例代码如下:
#arbitrary-stops {
/* fallback DIY*/
/* Safari 4-5, Chrome 1-9 */
background: -webkit-gradient(linear, left top, right top, from(#2F2727), color-stop(0.05, #1a82f7), color-stop(0.5, #2F2727), color-stop(0.95, #1a82f7), to(#2F2727));
/* Safari 5.1+, Chrome 10+ */
background: -webkit-linear-gradient(left, #2F2727, #1a82f7 5%, #2F2727, #1a82f7 95%, #2F2727);
/* Firefox 3.6+ */
background: -moz-linear-gradient(left, #2F2727, #1a82f7 5%, #2F2727, #1a82f7 95%, #2F2727);
/* IE 10 */
background: -ms-linear-gradient(left, #2F2727, #1a82f7 5%, #2F2727, #1a82f7 95%, #2F2727);
/* Opera 11.10+ */
background: -o-linear-gradient(left, #2F2727, #1a82f7 5%, #2F2727, #1a82f7 95%, #2F2727);
}
强制网站管理员四次复制粘贴相同的代码以得到相同的结果有什么意义?
注意:经常被引用的原因之一是,当浏览器无法正确实现规范或规范不明确时,前缀样式应为临时样式。
IMO,这是胡说八道:
- 如果浏览器引擎未正确实现规范,则浏览器将不兼容,无论它不是以非前缀形式实现还是以前缀形式实现。
- 如果规范不是确定性的,则在以前的实现中使用相同的名称可能会很重要。例如,如果CSS2具有
linear-gradient
,但CSS3打算扩展linear-gradient
其他功能,则可以通过-css3-<style>
区分工作CSS2和实验CSS3 来临时为新的草稿实现做临时前缀。实际上,CSS2没有linear-gradient
其他CSS3新颖性。
我还将理解不同的浏览器是否具有不同的实现格式:例如,假设Firefox需要用于文本阴影<weight-of-shadow distance-x distance-y color>
,而Chrome需要<distance-x distance-y weight-of-shadow color>
。但实际上并非如此。到目前为止,至少我使用过的CSS3的所有新功能都具有相同的格式。
If the browser engine does not implement the spec correctly, the browser will not be compliant
-欢迎来到真实世界。™