Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
internet explorer的CSS表达式与过滤器和Javascript_Javascript_Css_Internet Explorer_Cross Browser_Css Expressions - Fatal编程技术网

internet explorer的CSS表达式与过滤器和Javascript

internet explorer的CSS表达式与过滤器和Javascript,javascript,css,internet-explorer,cross-browser,css-expressions,Javascript,Css,Internet Explorer,Cross Browser,Css Expressions,CSS表达式和CSS过滤器之间有什么区别 两者都不利于页面速度吗 如果某些东西可以在其他浏览器中通过纯CSS实现,但对于IE来说,只能通过CSS表达式、CSS过滤器或Javascript实现。如果我们关心页面速度,那么我们应该一直使用Javascript Javascript的渲染速度会比CSSFilter或Expression解决方案快吗 在Pekka的回答后更新 所以CSS表达式应该被避免,这很清楚 现在我想了解一下过滤器 过滤器示例 #myElement { opacity: .

CSS表达式和CSS过滤器之间有什么区别

两者都不利于页面速度吗

如果某些东西可以在其他浏览器中通过纯CSS实现,但对于IE来说,只能通过CSS表达式、CSS过滤器或Javascript实现。如果我们关心页面速度,那么我们应该一直使用Javascript

Javascript的渲染速度会比CSS
Filter
Expression
解决方案快吗


在Pekka的回答后更新

所以CSS表达式应该被避免,这很清楚

现在我想了解一下过滤器

过滤器示例

#myElement {
    opacity: .4; /* other browsers */
    filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40); /* this works in IE6, IE7, and IE8 */
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(opacity=40)"; /* this works in IE8 only */
}
要在IE6中获得PNG透明度,并在IE6,7,8中获得一些CSS 3效果,我们可以使用CSS IE
过滤器

还有一些Javascript替代方案可用

Javascript的渲染速度会比CSS过滤器快吗


注意:过滤器属性是无效的CSS

如果您引用的是IE6的CSS表达式,您应该完全删除它们并使用jQuery

IE CSS表达式

  • 过去只在IE中工作,最多7小时
  • 已经
  • 没有什么是jQuery做不到的,只是方便了一点
  • 根据,他们过去要求启用JavaScript
  • 总而言之,这是个坏主意

在旧版本的IE中,如果您可以选择使用CSS过滤器或CSS表达式,则过滤器是更好的选择

但是,我想不出有哪一种场景可以选择过滤器或表达式

您应该更喜欢纯Javascript而不是表达式,因为表达式是不断求值的,例如在
mousemove
上。使用纯Javascript,您可以控制代码何时运行,例如
onload
,或
onresize

请参见谷歌:

CSS表达式会降低渲染效果 演出将它们替换为 替代方案将改进浏览器 IE用户的渲染

注:本文件中的最佳实践 本节仅适用于互联网 资源管理器5到7,支持 CSS表达式。CSS表达式是 已在Internet Explorer 8中弃用,并且 其他浏览器不支持


过滤器在IE中使用的东西,通常没有办法替换它们

没有办法“使用Javascript”,因为Javascript只是动态地应用过滤器。透明度和rgba渐变过滤器解决方案就是这种情况


回应您的编辑:

还有一些Javascript 可供选择

Javascript会更快吗 渲染比CSS过滤器好吗


在您链接到的解决方案中,没有一个解决方案有
过滤器
解决方案和Javascript解决方案(为方便起见,这些解决方案只是自动应用相同的
过滤器

好的,那么Filters@Jitendra呢?它们是IE7中某些效果的唯一解决方案,因此您可能需要它们。但它们显然很糟糕,因为它们在IEI中得到了支持。我还发现,对于过滤器PNG8来说,这是一个很好的解决方案,如果它适用于您的问题实例(如果您需要PNG24的全色深度怎么办?),但导出PNG8版本的图像需要额外的工作这可能只适用于较旧的IE。这是另一种透明解决方案,它使用VML来处理问题。您在链接的文章中写道“没有一种解决方案具有过滤器解决方案”,但它有许多带有过滤器的解决方案。我没有得到you@JitendraVyas:我说“没有一个变通办法有过滤解决方案和JavaScript解决方案”。这意味着您别无选择,只能使用过滤器解决方案(如果JavaScript解决方案确实存在,那么它只会应用相同的过滤器解决方案,因此不会增加速度)。