【问题标题】:CSS3 border radius problem with Chrome, Opera, SafariChrome、Opera、Safari 的 CSS3 边框半径问题
【发布时间】:2011-05-11 11:47:06
【问题描述】:

我在尝试向某些 div 添加圆角时遇到了这个问题,但似乎找不到解决方案。我将这个 css 用于分配给 div 的类:

-moz-box-shadow: 0px 5px 5px #cccccc;
-webkit-box-shadow: 0px 5px 5px #cccccc;
box-shadow: 0px 5px 5px #cccccc;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
-khtml-border-radius: 5px;
border-radius: 5px;

以下是它在 Chrome、Safari 和 Opera 中的显示方式:

这是它在 Firefox 和 IE9 中的显示方式:

Chrome 和其他浏览器中的背景看起来好像以某种方式覆盖了顶部边框的背景颜色。与彩色顶部边框相关的唯一 css 是:

border-top:8px solid #333333;

有什么想法吗?

【问题讨论】:

    标签: css


    【解决方案1】:

    我怀疑这是浏览器如何选择呈现具有部分边框的框以及border-radius 的问题。如果没有完全不同的方法,我认为您无法自行修复(尝试为另一边设置白色边框?我不知道这是否可行)。

    the spec(特别是§5.4 Color and Style Transitions)正在起草某种标准,如果您愿意,应该如何准确地渲染具有角半径的框边框看看它。但最终,如何绘制边框和圆角取决于浏览器,如果没有合作,跨平台的一致行为将难以实现。

    【讨论】:

    • 发生了奇怪的事情。我阅读了您提供的链接,并尝试将顶部边框高度设置为等于或大于半径(以像素为单位)。如:border-top:8px solid #333333; -moz-border-radius: 8px; -webkit-border-radius: 8px; -khtml-border-radius: 8px; border-radius: 8px; 这对 Opera 有帮助,但对 Chrome 和 Safari 没有帮助...
    【解决方案2】:

    在各种浏览器中检查这个小提琴:

    http://jsfiddle.net/QVS9X/

    当您删除 border-radius 时,一切都会恢复正常。您可能已经在border-radius 的 Webkit 和 Opera 实现中发现了一个错误。检查它是否尚未被报告,如果没有,您可能想要报告它:)。

    [编辑]

    我很确定这是一个错误。

    1. 它只在 Chrome 和 Opera 中表现出来
    2. 该错误在 Chrome 和 Opera 中看起来不同
    3. buggy部分只与超过border-radius值的边框宽度有关(即border-radius:10px,边框宽度10px就可以了)
    4. 正确渲染的部分与border-radius的值一样宽。

    我很肯定它应该同时报告给 Opera 和 Webkit 团队。

    【讨论】:

    • 看起来很奇怪。有没有可能是故意这样实施的?我发现很难理解为什么...... P.s.你在那里做的漂亮的彩色盒子:P
    • 颜色只是为了准确地查看哪些部分属于哪些边界。我怀疑这是故意的,因为我看不出它的行为有任何明显的逻辑。
    猜你喜欢
    • 2011-03-15
    • 2011-08-11
    • 1970-01-01
    • 2012-10-14
    • 1970-01-01
    • 2012-06-17
    • 1970-01-01
    • 2016-04-28
    • 2016-07-08
    相关资源
    最近更新 更多