两个重叠元素的边框半径;背景闪耀

M. *_*her 5 css

我使用 2 个重叠元素制作了一个 CSS 进度条。元素的 CSS 如下:

#status_progressbar {
  height: 22px;
  width: 366px;
  -moz-border-radius: 10px;
  -webkit-border-radius: 10px;
  border-radius: 10px;
  background: #000;
  cursor: pointer;
}
#status_progressbar_progress {
  height: 22px;
  background: #eee;
  float: right;
  -moz-border-radius: 0 10px 10px 0;
  -webkit-border-radius: 0 10px 10px 0;
  border-radius: 0 10px 10px 0;
  /* width controlled by Rails backend, using inline style */
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,父级的背景在右边缘部分可见,正如您在这张图片中可以清楚地看到的那样。由于子元素的背景应该与父元素精确重叠,我不知道为什么会出现这种情况。

[图片在Firefox 4中拍摄]

问题

也许有人可以向我解释为什么会发生这种情况以及如何解决?

Ian*_*ood 2

另一种方法是简单地使用 status_progressbar div(无子项)。创建一个足够宽的图像(例如 1000 像素)和您选择的颜色(我个人会创建一个白色 50% 不透明度)。

然后:

#status_progressbar {
  height: 22px;
  width: 366px;
  -moz-border-radius: 10px;
  -webkit-border-radius: 10px;
  border-radius: 10px;
  background: #000 url("/path/to/image') repeat-y 0 0;
  cursor: pointer;
}
Run Code Online (Sandbox Code Playgroud)

然后,我将使用 javascript 操作背景位置属性,始终提供 px 值而不是 %,因为 %50 将使图像居中。

var prcnt = (YOURPERCENTAGE/100)* 366;
Run Code Online (Sandbox Code Playgroud)