IE的实验性CSS:黑客攻击还是黑客攻击?

时间:2010-08-13 06:15:42

标签: css internet-explorer

我希望在我的页面上使用一些令人眼花缭乱的实验性CSS,例如border-radius(圆角)和渐变。不幸的是,Internet Explorer还不支持任何这些。 IE9上至少会出现border-radius,而且还没有关于渐变的文字。

那么你会建议只留下IE(我的大多数用户都会使用FF或Chrome)或使用图像来“修复”IE的演示文稿吗?它甚至值得吗?因为我知道不仅背后的痛苦,而且还可能打破其他浏览器的样式。

那么,黑客攻击还是黑客攻击?

6 个答案:

答案 0 :(得分:2)

虽然这个问题有点主观,但我的答案不是破解。 CSS3被认为是向后兼容的,这意味着如果浏览器不支持它,它将会优雅地降级。这对我来说应该是这样的。我的意思是,如果你仍然计划破解它,为什么要使用CSS3呢?在这种情况下,只需使用简单的旧CSS2技巧,如javascript圆角或图像,这样你就不必黑了。

答案 1 :(得分:2)

术语狡辩:使用图像模仿IE中的CSS3功能并不是真正的黑客攻击。 CSS中不直接支持的任何视觉效果都需要在图像中实现。

但回答你的问题,取决于:

  • 如果您的观众中只有少数人使用IE,那么您可以忽略它。弄清楚几乎没有足够的东西取决于你/网站所有者。

  • 如果不是:

    • 如果border-radius效果不是网站品牌的关键部分,那么我建议你让IE忽略它们并使用方角。没有人同时浏览两个浏览器的网页,如果你的网站在IE 6中看起来有点不同,没有人关心,只要按钮在同一个地方并且一切正常。

    • 如果它们是网站品牌的关键部分,或者您的客户坚持网站在IE 6中看起来相同,那么您必须在IE 6中实现外观。所以,要么:

      • 使用border-radius,并使用conditional comments包含IE 8及更低版本的样式表以及模仿功能的代码

      • 不要打扰border-radius - 使用适用于所有浏览器的IE代码。这将避免您必须维护两组代码,但这意味着所有浏览器都必须下载您用于IE的图像,从而使它们的性能稍差。

答案 2 :(得分:2)

我不认为它在“黑客”之间做出选择而在所有浏览器中都没有实现它,而且我很惊讶没有人提到真正拯救生命的“功能”(我不会考虑)它是一个黑客,因为它是一种很好的向后兼容方法):条件评论

它不仅可以帮助解决恼人的IE错误,它还可以让您定义不太理想但仍然100%有效的方法来获得某些效果,例如使用repeat-y代替CSS3渐变的图像渐变,或者IE7和8的平铺半透明png。真的,如果你愿意,IE不应该是单一因素,这将限制你试验CSS3的能力。

答案 3 :(得分:1)

如果您不想要图片,IE黑客或单独的样式表,您可以随时查看CSS3Pie:http://css3pie.com/。它并不完美,特别是当你想要一些渐变和放大时。阴影,但它可以很容易地处理圆角。有类似的IE行为,但我认为这个行为目前最活跃。

答案 4 :(得分:0)

有黑客然后有黑客攻击。我将“hack”解释为利用浏览器中的缺陷,例如IE中的后代选择器hack(使用>)。浏览器更新后,这些类型的东西会中断。

我不考虑使用图像来创建漂亮的阴影或渐变作为黑客。它可能无法满足您在语义上做所有事情的要求,并且您可能会对使用图像进行某些图像不应该被要求的东西感到不安,但实际情况是,根本没有选择 - 没有办法做任何事情干净,无图像的方式 - 如果你想在大多数人的浏览器上看到漂亮的渐变和阴影(Internet Explorer占大多数)。

如果你认为圆形边框或渐变只是可选的眼睛糖果,那么无论如何都不要担心IE。但是如果你认为它确实让你的设计看起来很好并且你不希望大多数用户*错过,那就去吧。

*根据您的受众群体,IE我可能会或可能不会构成您的大多数受众。

答案 5 :(得分:0)

这实际上取决于这些功能对网站外观的重要程度,或者说客户和设计团队的重要程度。此外,还有一个问题是这会使你的标记和CSS膨胀多少 - 即。取决于在设计环境中需要如何构建效果的方式会有多大的麻烦?

通常在这种情况下,我赞成渐进式增强,即。提出一些合适的东西,但它不需要是复合艺术的一对一。尽管如此,这是一个决定,你作为一个开发人员真的可以自己做(好吧,除非你也是设计师)。