我正在设计/构建一个网站,并且像一个优秀的小开发人员一样,我一直在关注所有流行浏览器中的呈现方式 - 当前版本的 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;
}
如果您想亲自尝试一下,我已经在我的服务器上放了一些文件: