Chrome 在刷新后更改样式并在我右键单击检查时更正它

Posted

技术标签:

【中文标题】Chrome 在刷新后更改样式并在我右键单击检查时更正它【英文标题】:Chrome changes style after refresh and corrects it when I right click to inspect it 【发布时间】:2012-05-29 09:19:09 【问题描述】:

至少在我的经验中,这是一个非常奇怪的错误。

我已经制作了该网站的测试版本,以便您可以实时查看here。

重现步骤:

进入该网站,你看#thelist 应该没问题:

当你在 Windows 机器上进行简单刷新时,问题就出现了,所以 Ctrl+RF5

现在#thelist 会去改变它的位置:

解决此问题的主要问题是,当我尝试检查元素时,它会立即回到正确的位置...

另请注意,如果您执行硬刷新 Ctrl+Shift+RCtrl+F5 然后元素会回到正确的位置。

这怎么可能,是什么原因造成的?怎么解决?

【问题讨论】:

可爱!检查元素,然后(打开检查窗口)进行刷新。您将能够调试该问题。我猜是因为绝对位置,但是...可爱的效果! @Adriano 不错的技巧,它实际上对这个特定问题没有帮助,但无论如何还是有用的! 【参考方案1】:

#rightColumn 上尝试 position: relative 并使用 topleft 而不是 定位元素>边距

【讨论】:

【参考方案2】:

#imgSlot 上,在 html 中设置尺寸:

<img id="imgSlot" src="img/slot.png"  >

问题不再发生。

您的原始代码:http://jsbin.com/efejay

带尺寸:http://jsbin.com/efejay/2

这显然是一个 WebKit 错误。我认为这与正在缓存的图像有关。我过去见过类似的事情,但通常会涉及到 javascript。例如:jQuery height() returning false values

【讨论】:

该死的,我永远也找不到那个!!所以只是为了看看我是否理解正确,你强制刷新图像设置它的高度和宽度并强制布局设置到位? 由于我对这个错误的了解有限,这就像 WebKit 在确定图像高度之前“过早”决定将元素放置在哪里一样。您的问题可以通过设置img 高度或以不依赖已知img 高度的方式定位#thelist 来解决(正如tbleckert 所建议的那样)。 你不应该在 img 标签上设置宽度和高度,我相信。我知道你为什么要这样做,但如果有一个选项,请使用它。 @tbleckert:我同意在这种情况中,它应该是background-image。好决定。但是,如果你说“你永远不应该在 img 标签上设置宽度和高度”,你最好有一些来源可以引用。你的理由都没有说服力。以下是 Google 的想法:developers.google.com/speed/docs/best-practices/… 嗯好吧,这是有道理的..但我仍然认为没有必要。感谢您的链接,我收回我的声明;)

以上是关于Chrome 在刷新后更改样式并在我右键单击检查时更正它的主要内容,如果未能解决你的问题,请参考以下文章

无需在 Chrome 中单击鼠标右键即可检查元素

Chrome 将 CSS 样式表解释为图像

使用 tkinter 悬停时更改按钮颜色

window.location.reload 不适用于 Firefox 和 Chrome

禁用右键单击时如何检查chrome中的元素?

当我右键单击一个项目时,如何防止 ListBox 选择它?