CSS Background-Size不适用于静态颜色

Dav*_*ger 13 html css css3

我在CSS中非常糟糕,我需要为我完成一些复杂的事情.

我有一个数据表,我有一个列,我有类似的东西Qty Assigned / Qty Requested.我计算分配的%,因此5分配的10将是50%.现在,我想在TD匹配%的人身上加上背景颜色.因此50%将是TD的一半,让我们说是红色.

我试过使用background-color: red; background-size: <?php echo $BgPct; ?>%;但它不起作用.

谁有解决方案?我可以用任何东西.我也有jQuery.我不在乎它是否是CSS1/2/3,但它需要准确,所以66%不是75%的背景图片.

Vad*_*kov 10

你可以用linear-gradient

例如,如果您需要50%的红色

td {
  background: linear-gradient(to right, red 50%, transparent 0);
}
Run Code Online (Sandbox Code Playgroud)

演示:

table {
  border-collapse: collapse;
}

td {
  border: 1px solid gray;
  padding: 10px;
}

.half {
  background: linear-gradient(to right, red 50%, transparent 0);
}

.one-third {
  background: linear-gradient(to right, red 33.33%, transparent 0);
}

.three-quaters {
  background: linear-gradient(to right, red 75%, transparent 0);
}
Run Code Online (Sandbox Code Playgroud)
<table>
  <tr>
    <td class="half">50%</td>
  </tr>
  <tr>
    <td class="one-third">33%</td>
  </tr>
  <tr>
    <td class="three-quaters">75%</td>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

0故意使用零秒值以避免重复第一个值.这是有效的,因为渐变中的下一个值不能小于之前的值.

  • @Dani 您能否将其作为单独的问题发布,并附上所需的图像并在此处粘贴链接?我不明白你希望它最终是什么样子。 (2认同)

Cal*_*Jia 5

您可以将一个 div 放在另一个 div 中。使两个 div 具有相同的高度。内部 div 将具有背景颜色(红色)。然后你可以将 div 的宽度设置为 % ,这就是它将被填充的数量。

这就是 twitter bootstrap 实现其进度条的方式。如果你想要一个垂直填充条,我认为你可以将高度设置为 % 并使宽度相同。

这是 Twitter 引导程序示例:

http://cssdeck.com/labs/twitter-bootstrap-progress-bars

单击详细信息选项卡以查看源代码。

一个基本的实现示例:

<div style="width:50%">
    <div style="width: 50%; background-color:red; text-align:center">Hello</div>
</div>
Run Code Online (Sandbox Code Playgroud)