我正在尝试创建一个带圆角的div。在这个div内包含额外的内容,将填补这个div的高度。我注意到圆角div的每个角都有一些视觉腐败。在我看来,外部div的角落比内部div略大。根据我的代码,两个div的border-radius应该是相同的。
问题示例:http://jsfiddle.net/MRZaF/4/
<div class="a-a">
<div class="a-b">Content in here</div>
</div>
<br><br>
<div class="b-a">
<div class="b-b">Content in here</div>
</div>
div.a-a { background:red; border-radius:10px; width:400px; }
div.a-b { background:aqua; border-radius:10px; height:200px; }
div.b-a { background:red; border-radius:10px; width:400px; overflow:hidden; }
div.b-b { background:aqua; width:400px; height:200px; }
答案 0 :(得分:1)
不要把它放在上面,你不会得到它。
div.a-a {background:red;边界半径:10px的;宽度:400像素; } div.a-b {background:aqua;边界半径:10px的;高度:200像素; }
div.b-a {background:red;边界半径:10px的;宽度:400像素;溢出:隐藏; } div.b-b {background:aqua;边界半径:10px的;宽度:400像素;高度:200像素;}
jsfiddle.net/MRZaF/5 /
答案 1 :(得分:1)
有几种选择可以做到这一点 第一个选项 :稍微增加父容器的边框半径
div.a-a
{
background:red;
border-radius:13px;
width:400px;
}
第二个选项 :从父元素中删除border-radius,然后将其用于子元素并将背景设置为无。
div.a-a
{
background:none;
width:400px;
}
答案 2 :(得分:1)
注意:比答案更多的一些额外错误跟踪&amp; +1有趣的问题
是的,你是对的。有一种最小的腐败,至少在浏览器中以100%缩放级别查看它时非常明显。但是,放大的越多,bug越小;在500%像1/10像素。你的css是正确的,所以我认为这必须是浏览器渲染问题。我不会立刻在chrome bug列表https://code.google.com/p/chromium/issues/list中找到任何关于它的问题。但是,如果你真的想要隐藏那些重叠的角落,你仍然可以通过为孩子设置margin: -0.6px -0.6px;
和width: parents width + margin*2
来解决这个问题。我不知道,也许屏幕问题以及误差范围。萨钦的解决方案当然也有效。
我更新了你的测试用例: http://jsfiddle.net/MRZaF/7/ 使用一些不同的值来跟踪误差范围。看起来在100%的浏览器视图中,与“真实”定位的差异大约是0.5px,然后当你放大到500%时,它变得更窄更窄。