3

我正在设计/构建一个网站,并且像一个优秀的小开发人员一样,我一直在关注所有流行浏览器中的呈现方式 - 当前版本的 Firefox、Chrome、Safari(适用于 Windows)和 Chrome,以及 Internet Explorer(8,不是 9 预览版)。

无论如何,对我来说,Chrome 中的一切看起来都很好,但是我的一位一直在给我一些反馈的朋友告诉我“哦,顺便说一句,你的网站在 Chrome 中呈现得非常糟糕。” 我给了他标准的“在我的机器上工作”的回答,他回答说他认为这一定是一个扩展问题。

他给了我一份他使用的流行扩展的简短列表,经过反复试验,我发现问题出在 AdBlock 上。我不会让你对实际渲染问题的细节感到厌烦,但我们注意到了一些奇怪的事情。并不是 AdBlock 阻止了页面上的某些内容,而是 Chrome 中 AdBlock 的存在导致了问题。我知道这一点,因为即使 a) 我暂停 AdBlock,并且 b) 当我明确排除该页面/网站被 AdBlocked 时,问题仍然存在。

我已经解决了这个问题(我早些时候在 Firefox 3.0“BrowserShot”中注意到它,但只修复了 FireBug 中的错误 - 我还没有将它应用到真实副本),但它让我想知道是否存在是我应该注意的其他问题。

这似乎也不是怪癖与标准模式的问题。document.compatMode 仍然显示“CSS1Compat”(标准模式),当我删除 doctype 定义以触发 quirks 模式时,该站点仍然正确呈现(尽管在某些地方更改了一些填充 - 无需担心)。

以前有没有人注意到这个问题?AdBlock 是否从根本上改变了 Chrome 呈现页面的方式,即使它在该特定网站上不活跃?


编辑#1:

它变得更奇怪了。我试图创建一个示例,但由于某种原因它不会正确呈现。最终,我将原始(即失败的)html 复制到一个新文件中,并将整个 CSS 文件放入文档中的<style>标签中<head>。它仍然有效。

一些试验和错误,我已经确定问题只存在于包含 css via<link rel="stylesheet">包含via时<style>

有人可以解释一下这里发生了什么吗?


编辑#2:

这是我正在使用的代码:

HTML:

<!DOCTYPE html>
<html>
  <head>
    <title>Demo</title>
    <meta charset="UTF-8">
    <link rel="stylesheet" type="text/css" href="style.css" />
  </head>
  <body>
    <div id="outer">
      <img src="placeholder.png" width="150px" height="150px" />
      <div id="inner">
        <h1>Test</h1>
        <p>Lorem ipsum blah blah blah</p>
      </div>
    </div>
  </body>
</html>

 

CSS:

    #outer {
      border: 1px solid #000;
      width: 700px;
    }

    #inner {
      float: right;
      width: 540px;
    }

如果您想亲自尝试一下,我已经在我的服务器上放了一些文件:

4

1 回答 1

0

在修改 css 后 Chrome 重排内容的方式似乎是一个问题 - 您可以按照以下步骤重现完全相同的渲染:

  1. 禁用 Adthwart,重新加载 chrome。
  2. 加载页面(两者中的任何一个)。
  3. 进入 Chrome 检查器 - 选择 div#inner 元素。
  4. 停用,然后重新激活float: right;CSS 属性。

提交错误报告是个好主意,如果它尚不存在 - 它是 WebKit 或 Chrome 错误。

于 2010-10-25T12:44:52.243 回答