如果我有除IE以外的所有浏览器的CSS解决方案那么应该为IE选择什么?
IE条件注释中的或
IE条件评论中的或
IE条件评论中的渲染速度会慢一些吗?
答案 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.getElementById
或alert
调用复杂得多,而且我可能希望jQuery可用,那时我也可以使用jQuery插件
答案 4 :(得分:1)
原因: CSS表达式每秒可以评估数百次。特别是考虑到IE不是比赛中最快的马,不要那么糟糕的旧浏览器。 在人查看页面时,平均IE CSS表达式的评估次数超过一千次。
更重要的是,它只是Javascript - 如果JS关闭它就不起作用,创建相同的垃圾全局变量等等。所以收益是无,损失很高。
不要仅仅为此包含JQuery。 但如果包含它(或Mootools等),请务必使用它们。
在没有JQ的情况下创建函数非常简单明了。 只需让它在页面加载时运行并调整大小(http://www.devarticles.com/c/a/JavaScript/OnReset-OnResize-and-Other-JavaScript-Events/1/),这应该可以解决问题。
使用IE条件评论,您甚至有效。
<!--[if IE]>
<script>
var dumbIE = function (){
//your stuff
}
onload=onresize=dumbIE;
</script>
<![endif]-->
答案 5 :(得分:1)
虽然我强烈反对使用CSS表达式(对于特定问题是否真的没有“正常”的CSS黑客攻击?重复检查它,两次,如果有必要在这里提问),我会继续使用它。这消除了在用户禁用JS的情况下应用程序中断的风险。使用unobtrisively时,JS处于最佳状态,在您的情况下,显然不是解决方案。
答案 6 :(得分:0)
有一些方法可以使IE与现代的css风格化网站“兼容”(例如众所周知的评论<!--[if lte IE 6]>...<[endif]-->
等等......但无论如何,这取决于你。