如果我有除IE以外的所有浏览器的CSS解决方案那么应该为IE选择什么? CSS表达式与JavaScript对比jQuery与插件?

时间:2009-12-23 15:14:54

标签: javascript jquery xhtml css

如果我有除IE以外的所有浏览器的CSS解决方案那么应该为IE选择什么?

IE条件注释中的

CSS表达式

IE条件评论中的

JavaScript

IE条件评论中的

jQuery +插件

渲染速度会慢一些吗?

7 个答案:

答案 0 :(得分:1)

CSS表达式仅适用于Internet Explorer,因此您必须以某种形式使用Javascript,以用于复杂的样式。 Firefox,Safari和Chrome识别了很多CSS3,所以如果你想尝试做圆角或多个背景之类的东西,你可以使用它并寻找与IE相同的表达式。

但是,我建议使用jQuery。它构建为跨浏览器,并且您的代码可能比使用表达式/浏览器特定样式的组合更简单。

答案 1 :(得分:1)

jQuery插件,如果我已经在使用jQuery 我不认为我曾经使用CSS表达,甚至不是黑客 至于非jQuery JavaScript库 - 我必须从头学习它,它可能会重新实现一些jQuery的功能(因此不会受益于jQuery的引擎,跨浏览器等),并且可能无法编写以方便的jQuery样式,如链接和自由空检查。

答案 2 :(得分:1)

更新到新的焦点:如果你看起来除了IE(一种非常常见的情况......)之外的所有东西都很好看,那么你需要一些编写只有IE才能看到的代码的方法执行。您可以使用JavaScript browser sniffing中的conditional comments in CSS and HTML执行此操作。 IE CSS bugs(其他人都有一些很好的链接?)

(老答案:)

CSS表达式:仅限Internet Explorer。

JavaScript:必须自己编写每个臭味的代码。工作“跨浏览器”,但你仍然需要在所有浏览器中测试,以确保它正在做你想要的。

jQuery:跨浏览器,轻松,简单。 :d

答案 3 :(得分:1)

你应该避免使用CSS表达式。

对于JavaScript与jQuery,这取决于。如果我可以在没有跨浏览器问题的几行JS中完成它,并且我还没有将jQuery用于其他东西,那么就没有理由加载整个jQuery库。但是,有些事情要比一些document.getElementByIdalert调用复杂得多,而且我可能希望jQuery可用,那时我也可以使用jQuery插件

答案 4 :(得分:1)

  1. Do not use CSS expressions.
  2. 原因: CSS表达式每秒可以评估数百次。特别是考虑到IE不是比赛中最快的马,不要那么糟糕的旧浏览器。 在人查看页面时,平均IE CSS表达式的评估次数超过一千次。

    更重要的是,它只是Javascript - 如果JS关闭它就不起作用,创建相同的垃圾全局变量等等。所以收益是无,损失很高。

    1. 不要仅仅为此包含JQuery。 但如果包含它(或Mootools等),请务必使用它们。

    2. 在没有JQ的情况下创建函数非常简单明了。 只需让它在页面加载时运行并调整大小(http://www.devarticles.com/c/a/JavaScript/OnReset-OnResize-and-Other-JavaScript-Events/1/),这应该可以解决问题。

    3. 使用IE条件评论,您甚至有效。

      <!--[if IE]>
      <script>
        var dumbIE = function (){
         //your stuff
        }
        onload=onresize=dumbIE;
      </script>
      <![endif]-->
      

答案 5 :(得分:1)

虽然我强烈反对使用CSS表达式(对于特定问题是否真的没有“正常”的CSS黑客攻击?重复检查它,两次,如果有必要在这里提问),我会继续使用它。这消除了在用户禁用JS的情况下应用程序中断的风险。使用unobtrisively时,JS处于最佳状态,在您的情况下,显然不是解决方案。

答案 6 :(得分:0)

  1. 等待微软改进IE ..哈哈。
  2. 忽略IE - &gt;鼓励您的网站访问者/用户下载/使用不同的浏览器(恕我直言,firefox是一个非常非常好的选择,如果不是最好的话)
  3. 有一些方法可以使IE与现代的css风格化网站“兼容”(例如众所周知的评论<!--[if lte IE 6]>...<[endif]-->等等......但无论如何,这取决于你。