有没有人知道更多关于歌剧大纲错误的事情?
看看这个:
<div id="outline">TEST</div>
<div id="another-div">Another div</div>
#outline {
border: solid 1px #000;
outline: solid 1px red;
background-color: #fff;
width: 200px;
height: 200px;
}
#another-div {
position: absolute;
top: 100px;
left: 100px;
border: solid 1px #000;
outline: solid 1px blue;
background-color: #eee;
width: 200px;
height: 200px;
z-index: 5000; /* even this is not helping */
}
我使用的是最新的Opera,我在两台不同版本的机器上进行了检查,它们的渲染方式都是这样的:
那是什么?在任何FF/Safari/Chrome中,轮廓都在灰色区域之下,但在Opera中,它仍然在上方(即使div parent远远低于!)。
谷歌搜索只给出了“9.5+ CSS bug:在绝对位置上渲染轮廓”的链接,但它不想打开。
有什么临时的修复方法吗?又或者我是盲人,在什么地方犯了个可怕的错误?
发布于 2011-06-21 18:39:02
这更像是Opera中缺少的规范,而不是bug。bug构成了一些不能按照规范工作的东西,并且Opera根据步骤10 -http://www.w3.org/TR/CSS21/zindex.html遵循W3标准)
它是Opera中缺少的规范,因为没有办法将样式设置在最后绘制的块之上,即“轮廓”。
当我们可以使用边框或框阴影时,最好不要使用轮廓,但我不能这样做,因为我有一个工具提示,成千上万的人独立加载到他们的网站上。我不能奢侈地改变每个人的模板样式,我也永远不会想要这样做。
我已经向Opera提交了错误报告(DSK-339836)。希望他们能给我们一种方法来画出比上一个画的东西更好的东西(即。大纲)
发布于 2011-10-31 18:48:16
这不是一个bug!
http://www.w3.org/TR/CSS21/ui.html#dynamic-outlines
使用轮廓属性创建的轮廓被绘制在框上,即轮廓始终在顶部,并且不影响框或任何其他框的位置或大小。因此,显示或隐含轮廓不会导致回流或溢出。
Outline不应该是“另一个边框”属性。它更需要在某些元素周围进行调试,或创建可视化UI提示。
发布于 2011-03-29 17:26:45
这本身不是一个"bug“,而是规范如何实现的不同之处。轮廓高亮显示长方体的边缘。就这样。它不应该被用作边界。如果你仔细观察,你会发现只有红色的轮廓与另一个框重叠,但黑色的边框不重叠。
你使用边框、轮廓和重叠div有什么原因吗?这似乎是一个奇怪的用例。如果你需要同时使用两者,你可以使用box-shadow作为一个小技巧,在最新的浏览器中获得你想要的效果:box-shadow: 0px 0px 0px 1px red;
。
https://stackoverflow.com/questions/5443974
复制