用图片描述这个问题最简单。它的外观(在Firefox中有效):
在Chrome和Safari中,由于某种原因,边框的内部是正方形的:
这是我的CSS:
.header {
width: 850px;
margin-left: auto;
margin-right: auto;
background-color: #F7F7F7;
-moz-border-radius: 40px;
-webkit-border-radius: 40px;
border-radius: 40px 40px 40px 40px;
border: 20px solid rgba(255,255,255,0.1);
-moz-background-clip: padding;
-webkit-background-clip: padding;
background-clip: padding-box;
margin-top: 20px;
}
有什么想法吗?
编辑 - 这是一个jfiddle:jsfiddle.net/oliverw92/pJgyu/11262 /
答案 0 :(得分:2)
这是一个已知的Webkit和Opera错误:https://bugs.webkit.org/show_bug.cgi?id=23166
直到它被修复,你唯一的方法就是使用我害怕的2个元素......
答案 1 :(得分:1)
如果从边框移除alpha,则可以正常工作。由于您可能不想这样做,因此您可以使用两个嵌套元素。 Example here
答案 2 :(得分:0)
我认为剪切到框的填充时这是正常的Webkit行为。填充是方形的,即不是由边框曲线定义的,因此背景颜色覆盖边框的部分。
尝试这样做(通过嵌套在DIV中的SPAN):
CSS:
body {
background-color: #999;
}
.header {
width: 400px;
margin-left: auto;
margin-right: auto;
-moz-border-radius: 40px;
-webkit-border-radius: 40px;
border-radius: 40px 40px 40px 40px;
border: 20px solid rgba(255,255,255,0.1);
margin-top: 20px;
height: 85px;
font-weight: 100;
font-size: 70px;
vertical-align: middle;
text-align: center;
}
.header span
{
background-color: #F7F7F7;
display: inline-block;
width:100%;
border-radius: 20px 20px;
}
HTML:
<div class="header">
<span>DataLog</span>
</div>
附注:除了您的代码,我没有费心添加所有供应商前缀;我会留给你的。
答案 3 :(得分:0)
或者你可以使用盒子阴影并调整上边距。我的示例仅包括-web-kit版本
.header {
width: 400px;
margin-left: auto;
margin-right: auto;
background-color: #F7F7F7;
-webkit-border-radius: 40px;
-webkit-box-shadow: 0px 0px 0px 20px rgba(255,255,255,0.10);
margin-top: 40px;
height: 85px;
font-weight: 100;
font-size: 70px;
vertical-align: middle;
text-align: center;
}
Here is a similar JSFiddle to your first example using only your original div
答案 4 :(得分:0)
我遇到了类似的问题。事实证明,因为我使用border-radius添加的容器内的容器具有背景颜色,所以它覆盖了边框的内部。
为了纠正这个问题,我为子对象添加了一个border-radius,并使它看起来一样。