2011-04-05 66 views
1

我似乎最终做的很多事情都是为了支持老的不符合标准的浏览器,似乎是(1)重复的,(2)容易被忽略。有两件事告诉我,他们应该可以用计算机来代替我的大脑。自动化和简化Crossbrowser支持

举例来说,我在任何地方使用...

.element-selector { 
    display:inline-block; 
} 

...为了支持IE7我真的需要申请额外的规则...

.element-selector { 
    display: inline-block; 
    /* IE7 */ 
    zoom: 1; 
    display: inline; 
    /* End IE7 */ 
} 

...在为了在IE7中正确渲染东西。

我不确定我在这里要求的是什么。但似乎应该有一些东西,我可以设置“为我做这个”。也许一些脚本静态分析我的CSS文档并插入这些东西?一些疯狂的jQuery插件将它们插入到DOM中?一些CSS生成允许自动创建CSS文档的伪语言?

回答

1

自动化&简化跨浏览器支持

我假设通过 “跨浏览器”,你大多谈论的Internet Explorer。它是最大的麻烦制造者,并且一些旧版本are still在令人讨厌的广泛使用。使用旧版本的其他浏览器可以忽略不计,以至于您可以忽略它们。

看起来你已经(明智地)已经忘记了旧版本的非IE浏览器;使(你的例子)display: inline-block在Firefox 2中工作,you need display: -moz-inline-stack

一些疯狂的jQuery插件插入 他们到DOM?

不jQuery的:)不过这个修正了许多问题:http://code.google.com/p/ie7-js/

IE9.js - 升级MSIE5.5-8是 与现代的浏览器兼容。

我不得不指出,任何基于JavaScript的JavaScript显然在JavaScript关闭时都不起作用。

也许一些脚本,用于静态 分析我的CSS文档,然后将这些东西 ?

我能想到的到最接近的事是这样的:http://www.onderhond.com/tools/ie6fixer/

欢迎IE6 CSS定影液:入门 套件页面。一个专门设计为 的工具可以缓解ie6 css 调试器的痛苦。这是非常重要的 注意,这个工具是 不是一个奇迹的解决方案。 ..在某些 的情况下,它甚至可能会引入 新错误,因此记住 时可能会添加一个潜在的修复错误。也知道 不是输出干净,精益和优化的 的css代码。 ..这个工具已经concieved 减少猴子的工作,当 开始ie6 css修复文件。它 适用于一系列的基本修复, 已知可以克服许多问题和 造成尽可能小的伤害。

它只是专门试图解决IE6相关的问题,幸好变得越来越不重要。

+0

是的,你是正确的,我们主要考虑只支持IE回到7和其他浏览器只能回到FF3-ISH。 – 2011-04-05 19:42:30

+0

http://code.google.com/p/ie7-js/已经处理了许多更常见的* IE7问题 - 那些不是由定义自动定义的代码很难自动修复,或者脚本将修复它们。大量的IE7问题通过应用['hasLayout'](http://www.satzansatz.de/cssd/onhavinglayout.html)来解决,通常使用'zoom:1' - 但是不能将其添加到所有内容中,因为在其他情况下,它会导致问题。我想我所说的是,你所要求的东西不存在(除了我的答案中的想法),并且不值得做 - IE7的使用率非常低。 – thirtydot 2011-04-06 00:14:14

1

像Sass或Less之类的东西可以帮助你。你可以定义mixin并使用它们。

.inline-mix { 
    display: inline-block; 
    /* IE7 */ 
    zoom: 1; 
    display: inline; 
    /* End IE7 */ 
} 
.element-selector { 
    .inline-mix; 
} 

这不是一个自动化的解决方案,但它可以帮助干一点你的CSS。

+0

你应该指出,他必须使用'* display:inline'来将它提供给IE7(无效的CSS,但我首选的方法无论如何)。如果不是这样,SASS/LESS否则可以帮助处理IE7规则? *(我不知道SASS或LESS)* – thirtydot 2011-04-05 19:16:47

0

我曾在一家大型银行的合规项目团队工作,为其信用卡业务重做超过1,000个网站。对于低于IE6的用户,屏幕阅读器的支持以及缺乏javascript /图像,要求是非常严格的,并规定了向后兼容性。这使得它快速和可能的单一工具是960.gs

重置使我们回到基准线,并消除了相当多的IE特定黑客(他们已经完成的代码)的需要网格消除盒模型缺陷的IE,并帮助确保布局在生产过程中没有耗尽时间。节省的时间使我们能够超越生产预期和更彻底的测试,这是一次胜利。

在我那里的时候,我没有被允许使用JQuery,使用EXTREMELY sparce Javascript,并且跨越数百页的3个IE浏览器。可能的唯一方法是使用网格。这不是一个超级高科技,性感的答案。但是,我发誓要通过一个经过测试的战略框架来加速生产。