【问题标题】:IE7 IE8 Misinterpreting EMs in layout?IE7 IE8 在布局中误解 EM?
【发布时间】:2013-01-12 06:55:54
【问题描述】:

该网站是 www.holmecourt.com,它在 Safari 和 IE9 中的呈现完全符合我的预期,此屏幕截图是在 Safari 中直接查看的,在 Adob​​e Browserlab for IE9 中看起来完全一样:http://holmecourt.com/images/scrn1.png

但是,问题是 Browserlab 显示 IE8 如下,与 IE7 非常相似:http://holmecourt.com/images/scrn2.png

之前IE7/8在我到处都用像素的时候显示不错,但是自从把所有东西都改成em之后,IE7/8好像不太喜欢了。

我用em搜索过IE的bug,但没找到,想知道IE7/8在布局中渲染em的方式有没有已知的bug?

否则,经验丰富的开发人员在比较屏幕截图时可能会注意到什么,我认为这可能与布局破坏以及文本大小不正确有关,因此可能是字体大小的问题被继承了?

我尽量不含糊,但如果这篇文章是,我绝对可以尝试改写它。

所有 CSS 均可从源代码访问,但可以提供所需的任何代码。

感谢任何帮助或寻找问题的想法!

【问题讨论】:

  • 这很有趣,非常感谢,在我看来 IE7 只是以非标准方式运行,我无能为力
  • 不用担心.. 无论如何,您都可以使用特定的 css 文件来帮助它。我创建了一个答案来帮助解释。

标签: html css internet-explorer layout em


【解决方案1】:

我确实遇到了同样的问题,我现在只使用像素。 你需要他们做什么? 如果是为了能够调整文本大小,今天的用户代理能够使用像素值正确缩放内容。

【讨论】:

  • 可访问性是该站点的一个非常重要的方面,因此我认为使用 em 非常适合,以便可以根据用户偏好放大整个布局或特定区域,保存在会话/其他一些长期的方式,并通过以父类为目标来实现,从而使更改向下级联。我目前认为最好只针对 IE8 及以下版本,使用他们自己的混合像素和 em 的样式
【解决方案2】:

您可以实现特定的样式表以有条件地加载 ie。在html的head部分:

<!--[if lte IE 8]>
<link rel="stylesheet" type="text/css" href="ie.css" />
<![endif]-->

这将仅在使用 ie8 或更低版本时加载 ie 特定的 .css 文件。然后,您可以将覆盖放在 ie.css 文件中,以使其在这些版本中正确显示。

【讨论】:

  • 我以前用过,但对我来说,这似乎是一种针对特定版本 IE 的“更好”的方法,你觉得呢? paulirish.com/2008/…
  • 这是一个有趣的方法。这取决于您需要制作多少额外的 css 才能在 ie 中正确显示。如果它很多,那么您将不必要地为所有浏览器加载那些仅 css 规则。使用 .css 文件方法对 ie 浏览器来说只是一个额外的 http 请求。因此,这取决于您认为用户最常使用的浏览器。
【解决方案3】:

好的,万一有人遇到类似问题,我已经意识到发生了什么!

我在删除一些条件 cmets 时不小心删除了 HTML5 Shiv。这完全改变了 IE 8 及更低版本呈现 HTML5 元素的方式。

http://code.google.com/p/html5shiv/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    • 1970-01-01
    相关资源
    最近更新 更多