【发布时间】:2012-02-06 14:30:43
【问题描述】:
我对这个已经好奇了一段时间了。
css3 属性尚未标准化,但可以由浏览器实现,使用特定浏览器的前缀。 例如,可以使用border-radius,它在现代浏览器上运行良好。但是,对于以前版本的浏览器供应商,我们可以使用供应商特定的属性,如 -moz、-webkit 等前缀来工作。
现在,对于我的页面,我使用了渐变和边框半径,创建了几个使用它们的类,并通过这些类应用了这些类。
以下哪个更好?
使用javascript查找是否支持,如果支持则使用属性,如果以上为假,请检查用户代理并相应地应用供应商特定属性。
使用类中的所有浏览器前缀,让浏览器使用适合它的任何一个。
我比较好奇和关心的是 DOM 加载的性能和时间。
【问题讨论】:
-
您不再需要为
border-radius加上前缀了。 -
在您的浏览器中禁用 JavaScript。加载您的页面。渲染慢吗?如果您没有发现任何延迟,那就没问题了。
-
尽管在 Chrome 中并不真正需要它,但不幸的是,我有很多使用 Firefox 3.5.x、3.6.x 的人访问我的网站,这确实需要 -moz 前缀
-
请注意,浏览器会忽略带有非供应商前缀的属性。因此,每个浏览器只需要处理一个附加属性。我不认为这可能是性能问题。像 Facebook 这样的大网站的 CSS 规则可能比您的网站多几倍,而且它们做得很好。
-
刚刚浏览了google的样式,有趣的是google确实使用前缀,但是,我可以在整个代码中找到mozilla前缀7次和opera前缀2次。甚至StackOverflow似乎也提到了CSS 本身的前缀,并且似乎有几个条目。
标签: javascript html css vendor-prefix