Opera大纲渲染bug?

时间:2011-03-26 17:29:14

标签: css opera outline

有没有人更了解Opera大纲bug?

检查出来:

http://jsfiddle.net/BYgMr/

我正在使用最新的Opera,我已经检查了两台具有不同Opera版本的不同机器,它们都呈现如下:

http://img156.imageshack.us/img156/3209/divs.png

那是什么?在任何FF / Safari / Chrome中,轮廓都会低于灰色区域,但在Opera中它仍然位于上方(即使div父级位于下方!)。

谷歌搜索仅提供“Opera 9.5+ CSS bug:渲染大纲超过绝对定位”链接,但它不想打开。

任何临时修复?或者也许我是盲人并在某处犯了一个可怕的错误?

5 个答案:

答案 0 :(得分:5)

这更像是Opera缺少的规范而不是bug。根据规范,一个错误构成不起作用的东西,Opera根据步骤10遵循W3标准 - http://www.w3.org/TR/CSS21/zindex.html

这是Opera缺少的规范,因为没有办法在最后一个块上面设置一个样式,即“轮廓”。

当我们可以使用边框或盒子阴影时,最好不要使用轮廓但我不能这样做,因为我有一个工具提示,成千上万的人独立加载到他们的网站上。而且我没有改变每个人的模板样式的奢侈,也不是我想要的。

我已向Opera(DSK-339836)提交了错误报告。希望他们能给我们一种方法来绘制最后绘制的东西(即大纲)

答案 1 :(得分:3)

这不是错误!

http://www.w3.org/TR/CSS21/ui.html#dynamic-outlines

  

使用轮廓属性创建的轮廓在“框”上方绘制,   即,轮廓始终位于顶部,并且不会影响轮廓   盒子或任何其他盒子的位置或大小。因此,   显示或抑制轮廓不会导致回流或溢出。

大纲不应该是“只是另一个边界”的财产。它更需要围绕某些元素进行调试或创建可视UI提示。

答案 2 :(得分:1)

这本身并不是“错误”,而是规范实施方式的差异。轮廓突出显示框的边缘。而已。它不应该用作边界。如果你仔细观察,你会发现只有红色轮廓与另一个盒子重叠,但是黑色边框没有。

您是否有理由使用边框大纲和重叠的div?这似乎是一个奇怪的用例。如果你需要同时使用它们,你可以使用box-shadow作为一个黑客来获得你想要的效果在最近的浏览器:box-shadow: 0px 0px 0px 1px red;

答案 3 :(得分:0)

首先:我看到了很多话题,没有明智的答案。

第二:Opera中的outline属性似乎具有正Z-Index并且始终位于所有其他Z-Index之上。

第三:我来找一个修复或处理它,但反而得到了垃圾和意见,我们都知道什么意见。

我将此视为一个浏览器代码问题,它将轮廓与元素分开,并为其提供一个正Z-Index高于其他所有内容。我尝试过的所有其他浏览器都可以正常工作,包括Opera以外的移动浏 我曾经喜欢Opera作为移动浏览器,但我现在看到更多的退缩了。

我在这一点上看到的唯一修复是一个浏览器ID脚本,它删除了Opera浏览器的outline属性。

答案 4 :(得分:-1)

是的,这是一个错误!

CSS 2.1轮廓在以下方面与边界不同: 大纲不占用空间。 轮廓可以是非矩形的。

所以没有任何地方指出轮廓应该在其他方框之上。边界不这样做!在自己的盒子上面绘制轮廓是好的,但就是这样。上面的另一个框具有更高的z-index,它不应该是可见的。

我甚至不能在带有轮廓的div上显示一个漂浮的弹出窗口,它会闪耀!这是完全错误的。没有其他浏览器这样做。