【问题标题】:CSS Webkit Bug - Redraw Issue?CSS Webkit 错误 - 重绘问题?
【发布时间】:2012-12-08 00:31:07
【问题描述】:

我创建了一个网站,它可以在 FF 和 IE 中完全运行,但在基于 webkit 的浏览器(即 Chrome)中存在错误。

问题是“动画”导航栏中的<a> 元素绘制错误(使用:hover)。

当页面在 Chrome 中完成加载后,它看起来像 this

但它应该看起来像this

然而,有趣的是,在 Chrome 的“开发者工具”窗口中,如果我轻推(例如取消选中和选中)any 元素的 any 属性,浏览器更新到正确的样式。如果我放大和缩小页面,它也已修复。

我能找到的唯一类似问题是this one。我试图将解决方案应用于我的问题,但没有奏效。需要注意的是,我没有使用任何 javascript 在页面加载时动态更改样式(如上面的问题),它只是标准的 HTML 和 CSS。

我认为这是 webkit/chrome 中的重绘错误。有没有办法解决这个问题?

【问题讨论】:

  • 你能给出示例代码吗?没有它很难测试:)
  • 这里是CSS,这里是HTML。抱歉,如果我没有按照正确的方式在 SO 上提交代码,首先想到的是 pastebin。

标签: html css google-chrome webkit


【解决方案1】:

不确定这在技术上是否是一个错误,但这绝对是一种奇怪的行为。您可以通过更改此部分来解决它:

#header_lower  ul li a{
box-sizing: border-box;
-ms-box-sizing: border-box; 
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;

...使用内容框代替边框框。除非您的布局严重依赖这些元素周围的粗边框并且您无法对其进行补偿,否则这可能是要走的路。

【讨论】:

  • 行得通!非常感谢您的帮助。绝对奇怪的行为,你认为错误是因为我不正确地使用了边界框,还是理论上边界框应该像我原本打算的那样表现?再次感谢!
  • 我怀疑他们应该按照您的意愿行事。我强烈怀疑一个错误,但我对它的了解还不够,无法将其称为一个错误:)
  • 现在不太确定它是一个错误...减少了它,发现它也可以通过更改#header_lower ul li选择器中的样式来修复;将padding:10px 更改为margin:10px。可能是在边框大小的块内添加的填充将单词挤到了“断点”。
猜你喜欢
  • 2014-04-27
  • 2013-03-18
  • 2011-10-21
  • 2013-09-15
  • 2012-03-03
  • 2012-03-07
  • 1970-01-01
  • 2012-09-08
  • 1970-01-01
相关资源
最近更新 更多