【发布时间】:2011-04-20 19:20:42
【问题描述】:
要在元素上添加渐变背景,我会这样做:
.css('filter','progid:DXImageTransform.Microsoft.gradient(startColorstr=\'#FFFFFF\', endColorstr=\'#'+event.backgroundColor+'\', gradientType=1)')
.css('background-image','-webkit-gradient(linear, left top, right bottom, color-stop(0.1, #FFFFFF), color-stop(0.99, #'+event.backgroundColor+'))')
.css('background-image','-moz-linear-gradient(top left, #FFFFFF 0%, #'+event.backgroundColor+' 100%)')
.css('background-image','-o-linear-gradient(top left, #FFFFFF 0%, #'+event.backgroundColor+' 100%)')
现在,jQuery 不是应该消除所有与跨浏览器兼容性问题相关的工作吗?有没有更好的方法来做到这一点。不使用任何额外的插件?
【问题讨论】:
-
Jquery 将消除/减少与 js 相关的跨浏览器问题,它不会解决您的 css 跨浏览器问题。至于我所知道的 jQuery 不会为你解决这个问题。
-
您可以在样式表中定义所有这些。不知道你为什么要使用 jQuery,除非你需要动态地这样做。
-
不要使用“background-image:” - 使用“background:”。
-
将所有这些放在一个样式表中的一个类下,然后用 jquery 切换该类。
-
@SteveCostello 如果您使用快捷语法
background,那么如果您稍后更改任何背景属性,例如背景位置,那么您也可以覆盖您在背景中设置的渐变。 CSS 规范建议不再使用速记代码。