【发布时间】:2016-08-29 10:30:12
【问题描述】:
我正在尝试制作一个进度条。 这是代码。
.outer {
overflow: auto;
width: 500px;
height: 300px;
}
.inner {
/* Uncommmet next line, and the border-radius will disappear. */
/* height: 500px; */
}
.progress {
width: 100%;
border-radius: 40px;
height: 80px;
background-color: #f5f7fa;
overflow: hidden;
}
.progress-basic {
background-color: #3890ff;
height: 100%;
width: 100%;
/* Removing the opacity can fix this bug. But why? */
opacity: 0.8;
}
<div class="outer">
<div class="inner">
<div class="progress">
<div class="progress-basic">
</div>
</div>
</div>
</div>
div.progress 有 overflow:hidden 和 border-radius:40px。所以div.progress-basic 应该显示为好像它有border-radius。
到目前为止一切正常。但是当滚动条显示在它们的父元素中时(在这种情况下是div.outer),border-radius 就消失了。
我的 Chrome 版本是 52.0.2743.116(64 位)。我也在Safari和Firefox中测试过这个bug,没有问题。
我为这个错误找到了一个奇怪的解决方案。如果我删除 .progress-basic 中的不透明度,一切都会按预期工作。但我不知道为什么,我真的需要不透明度。
这是一个显示此错误的代码笔。 http://codepen.io/tanbowensg/pen/akZPEb
【问题讨论】:
-
我有相同的 chrome 版本。我删除了注释行,它仍然有效
-
它也适用于我。也许您应该尝试清除浏览器缓存并检查一次。
-
您好,感谢您回答问题。我上面提供的示例存在一些问题。实际上,我发现重现此问题的条件非常严格。我在这里做了一个新的演示:codepen.io/tanbowensg/pen/qaWdgp我不确定这是一个错误还是它被设计成这样。
标签: css google-chrome overflow