3

IE 6 和 7 的哪些 CSS hack 是面向未来的?我的意思是如果我使用 then 那么他们将永远不会产生任何问题并且他们的补丁将永远不会被实施?

为所有人管理 2 个 css,为 IE 管理一个是耗时的,它还添加了一个额外的样式表。如果任何 hack 可以解决主 css 中的问题,那么它可以节省时间,当多个人在同一个项目上工作时,大多数时候我们也忘记了对条件 css 进行更改。

我不是在问条件样式表

4

6 回答 6

24

没有任何。
使用IE 条件注释插入您的每个版本(没有双关语..也许有点)样式..


[更新]
您更改的问题的附加说明。这可能很耗时,但这是最佳实践(顺便说一句,许多黑客不是有效的 css)..

即使对于相同的主要版本的浏览器,也无法保证使用 hacks .. 他们不太可能在未来的次要版本中修复 IE6 中的 css错误,但您仍然不能 100% 确定..

还有一个替代方案(起初可能更耗时),我提到的 IE 评论,但它确实是最佳实践......

此外,想想你团队中的其他编码人员,他们都必须知道、理解并在未来记住相同的黑客。随着时间的推移,维护黑客将变得比在其他文件中维护不同版本的违规规则更耗时..

于 2010-01-29T13:56:02.100 回答
2

黑客就是黑客,无法保证它们是否会成为未来的证明。关键是你应该尽可能减少黑客的使用,原因很简单,它们不能面向未来。你没看到IE6、IE7和IE8的hack之间有什么区别吗,它们都有不同的hack,没有保留以前版本的所有hack。其他浏览器也是如此。

于 2010-01-29T13:56:58.367 回答
1

一般来说,没有。但是它们也不应该是,特定浏览器的特殊情况编码不是一个好主意。

如果您 - 必须 - 进行特殊情况编码,那么最好的选择是使用 jQuery 之类的库,并使用它们的功能测试之一。不要做“如果不是 IE6”,而是做“如果不支持圆角”

于 2010-01-29T13:56:38.787 回答
1

我无法考虑将来以下划线开头的属性。

_background: #ff0000;
于 2010-01-29T13:56:45.620 回答
1

任何涉及在代码后面覆盖 CSS 属性的事情都只是遵循 CSS 标准,因此是面向未来的。

body {
   background: url('background.jpg') center;
   background: url('background-top.jpg') top, url('background-bottom.jpg') bottom;
}

但是,这仅在使用旧浏览器中不可用的功能时有效,而不是在处理特定于浏览器的错误时。要确保特定版本的 Internet Explorer 使用特定版本的 CSS,请使用条件注释。

<head>
    ...
    <!--[if lt IE 8]><link rel="stylesheet" type="text/css" src="ie7.css" /><![endif]-->
    <link rel="stylesheet" type="text/css" src="generic.css" />
</head>
于 2010-01-29T13:59:34.787 回答
0

永远不要/总是闲聊,每个浏览器模型的单独文件由于维护而随着时间的推移迅速分崩离析。

于 2011-04-20T19:30:02.227 回答