好的CSS设计和IE6/IE7是否支持互斥?

Phi*_*ler 3 css internet-explorer standards-compliance

像每个网络开发者一样,我通常每周至少一次诅咒IE6的创造者,造成犯规和不合时宜的死亡.然而,我的公司要求我继续支持最讨厌的浏览器.

我今天的问题一直是想在我的CSS中首先使用通配符,然后尝试使用"inherit"属性.IE7-都不支持这两种方式.

我真的,真的,想要拥有良好的,结构良好的,正确继承的CSS(面向对象的CSS,如果你喜欢这个流行语),但我的胃里有这种下沉的感觉,迟早会有这种感觉是自定义目的和基于位置的类.

这提出了一个问题:鉴于IE在处理许多CSS概念方面有多么糟糕,是否不可能在拥有结构良好的CSS文档的同时充分支持此浏览器?

只是为了澄清:我知道有很多方法(一些是合法的,一些不那么方式)来解决IE6和7中发现的缺陷和缺点.我真正要问的是"如果你想拥有一个,正确继承的精心编写的样式表,你必须在它之间做出选择并在所有浏览器中保持一致的外观吗?" 希望有道理.

换句话说,我应该坚持我的原则并编写好的样式表,还是应该接受IE6仍然享有非常高的(最后一次计算的20%)市场份额并让我自己支持它?或者是否有一些快乐的媒介允许我最小化我的HTML和CSS上的frankenstein手术,同时仍然在IE中获得一些可观的结果?

Cal*_*vin 9

公平地说,你不能责怪IE(尽管微软肯定是迄今为止最糟糕的违法者).如此庞大且快速发展的标准存在的部分问题在于,要及时完美地实施这个目标是太过分了.不幸的是,Web浏览器的发布周期与新Web规范的发布不一致.因此,所有浏览器开发人员都可以尝试从最新的W3C建议中实现尽可能多的功能,选择他们认为最先实现的最常用功能.

然而,事情显然提高了,而且可以支持IE6/7,仍然使用正确的CSS设计.这只是......很难.看一下布局引擎和CSS支持的比较.如果你看一下整体趋势,你会看到,大多数的浏览器(IE连)确实会遵守在长期建立的标准,它只是需要比别人更长一些浏览器来实现其推出后的标准.

有时并不是说一个浏览器比另一个浏览器"更少"符合标准.对于新标准,问题往往是不同的开发团队选择采用新规范的不同部分.因此,即使CSS3已经开始被大多数浏览器实现,我们可能必须等到CSS4发布之后才能看到所有主要渲染引擎的一致支持.如果您现在尝试使用最新的CSS3功能,那么您将很难在所有主流浏览器之间建立兼容性.但是如果你使用的是CSS1中引入的功能,那就没问题了.

因此,除了使用丑陋的CSS黑客外,唯一的选择就是坚持使用完善的规格.然后,问题不再是在支持特定浏览器时尝试符合Web标准.相反,问题只是试图抵制使用最新和最好的CSS功能的冲动.

除此之外,只有永久的解决方案我看到这种情况反复出现是对W3C以优先新近推出规格的不同部分,这样的新功能可以在所有主要的浏览器同步离散阶段进行.因此,例如,语法规则可能被赋予最高优先级以及其实现的设定截止日期.之后会出现第二阶段,可能是元素和属性选择器,依此类推.

这需要W3C和开发团队之间的巨大合作,但这是值得的.毕竟,用户和Web开发人员没有利用IE来实现CSS3的一个功能子集,而Firefox实现了不同的子集,而Webkit浏览器则是另一个子集.在所有主要渲染平台实际标准化之前,"标准"是没有用的.每个浏览器最好支持更少的新功能但是它们都具有相同的功能,而不是单独引入大量自己不受普遍支持的功能.

  • 问题是当旧标准不是连贯的交叉浏览器时.除非您使用定位1px gif和表,否则无法在不同的浏览器上获得完全相同的渲染.有趣的是,你*不应该尝试对像素*进行相同的渲染.让浏览器实现它的魔力,用户将*你的*设计调整为*他的*需求. (2认同)