ngStyle中的AngularJS多个背景
问题描述:
我正在尝试使用角度向某个元素应用渐变,但与ngStyle
没有这样做。ngStyle中的AngularJS多个背景
这里是什么,我尽量做到一个例子: http://run.plnkr.co/plunks/mwJBcWaJ1hqOUCsSyy8a/
旧的链接,不工作了http://run.plnkr.co/maDs3PSWw4Y5tDfb/
在这个例子中我使用的是普通style="{{css}}"
,这是不推荐的方法如in the documentation(短版本,步骤5)所述。它不会在IE < = 11
渲染如果我尝试使用ng-style="css"
和设置是这样的:
$scope.css = {
background: '-webkit-linear-gradient(' + gradient + ')',
background: '-moz-linear-gradient(' + gradient + ')'
…
}
你会看到明显的问题,css
对象可以只包含一个实例background
。
我想不出许多情况下,我必须这样浏览器前缀。 AngularJS是以什么方式解决这个问题,还是有一个IE < = 11解决方案?
答
这是一个有趣的问题,我不认为一个解决方案的那一刻,虽然看到的渐变之前IE 10不存在有可能是一个解决办法:
对于IE 10,9 & 8你可以使用它,因为没有冲突存在。
$scope.css = {
'-ms-filter' : "progid:DXImageTransform.Microsoft.gradient ("+iegradient+")",
'background' : "linear-gradient("+gradient+")"
};
而style="{{css}}"
将为所有其他现代浏览器做(即包括style
和ng-style
)。
注:我假设style={{}}
将在< IE11
失败默默如果这不适合你,你总是可以创建一个特定的指令背景梯度。如果您在评论中需要帮助,请告诉我。
嗨,谢谢你的回答。 – 2014-09-05 07:59:04
我花了很长时间来编辑评论......我刚刚看到连接到该pnk的链接不工作,我解决了这个问题。你的解决方案更具体一点,应该做的伎俩......现在回到摆脱ie-gradients – 2014-09-05 08:05:29
@TobiasKOpelke,看到你的工作plunker:创建一个指令与两个div改变其大小不是更容易相对于另一个比使用不受支持的梯度(在传统IE中) – 2014-09-05 08:15:27