我正在调整一个网站以使其与 IE7 一起使用,并且想知道:所有这些 IE hack 来自哪里?
问题是我无法想象一个人会说“是的,我们不会实施display: inline-block
,但*display: inline
会工作”。
这对我来说没有意义。那么是谁创造了这些黑客呢?是否有人发明了它们来替代某些不起作用的属性,或者这纯粹是运气?
PS:我了解您是否想将这个问题作为离题或其他内容结束,但如果至少您有链接或其他相关内容,我将不胜感激:)
我正在调整一个网站以使其与 IE7 一起使用,并且想知道:所有这些 IE hack 来自哪里?
问题是我无法想象一个人会说“是的,我们不会实施display: inline-block
,但*display: inline
会工作”。
这对我来说没有意义。那么是谁创造了这些黑客呢?是否有人发明了它们来替代某些不起作用的属性,或者这纯粹是运气?
PS:我了解您是否想将这个问题作为离题或其他内容结束,但如果至少您有链接或其他相关内容,我将不胜感激:)
hacks 起作用的原因是浏览器实现的变化和错误,主要是在旧版本的 Internet Explorer 中。
许多 hack 都围绕着对不寻常的选择器组合的不寻常反应。通常使用的是根据标准非法的选择器组合。由于标准没有指定非法代码应该如何工作,不同的浏览器对它的反应不同,这用于针对特定的浏览器。
在示例*display: inline;
中,有一个错误的实现和错误处理的变体的组合。在 IE 中,该inline
模式的实现有点像inline-block
在其他浏览器中的实现,并且在选择器中使用星号会使其他浏览器忽略该规则。该 hack 将适用display: inline;
于旧版本的 IE,并让其他浏览器使用该display: inline-block;
规则。