html - CSS边框半径背景颜色出血

标签 html css

当我在内部有一个元素时,我遇到了边界半径周围奇怪的出血/伪影的问题。

我搜索了很多关于类似问题的帖子,我看到的唯一建议似乎对其他人有用,但对我不起作用。建议如下:

div {
  background-clip: padding-box;
  overflow: hidden;
}

我创建了一个 JSFiddle 来重现这个问题。查看左上角和右上角,您可以看到 parent 的一些黑色背景透了出来。 https://jsfiddle.net/2596n440/

我该如何解决这个问题?

最佳答案

对于 Chrome,此问题报告为 here

我怀疑原因在浏览器中是相同的:元素被单独裁剪,抗锯齿允许流血。

修复将视具体情况而定,目标是移除共享边界。对于您的示例,需要重新排列元素,使它们成为顶部和底部,而不是父元素和子元素。如果这不是一个选项,您可以稍微调整一下 CSS:

.outer {
    border-radius: 8px;
    height: 456px;
    left: 50%;
    margin-left: -200px;
    margin-top: -228px;
    top: 50%;
    width: 400px;
    background-color: black;
    /*overflow:hidden;*/ /* removed */
    z-index: 150;
    position: fixed;
}
.inner {
    border-radius:8px 8px 0 0; /* added */
    width: 400px;
    height: 300px;
    background-color: white;
    position: relative;
    top:-1px; /* added */
 }

关于html - CSS边框半径背景颜色出血,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41174981/

相关文章:

html - 导航栏折叠在平板电脑 View 中不起作用

html - IE 7/IE 8 中输入字段旁边的垂直居中文本

html - div 不会出现在另一个 div 中

Opera Mini 的 HTML5 视频标签

javascript - 如何使用AJAX调用API并返回数据?

javascript - 在 div 中只拖放一个按钮

javascript - 在 Drupal 中使用 Javascript

html - 如何调整图像大小以适应浏览器窗口?

html - 清除某个div下的所有元素

javascript - 如何在 <li> 内设置自动间距,元素始终位于最右端