Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在宽度百分比很小的线段之间渲染1px的边沟?_Javascript_Css_Knockout.js_Pocketgrid - Fatal编程技术网

Javascript 如何在宽度百分比很小的线段之间渲染1px的边沟?

Javascript 如何在宽度百分比很小的线段之间渲染1px的边沟?,javascript,css,knockout.js,pocketgrid,Javascript,Css,Knockout.js,Pocketgrid,我正在创建一个UI控件。它是一个条形图,根据输入以相对比例显示彩色区域。一些要求是在颜色之间有一个1px的边沟,并且无论相对宽度有多小,每种颜色都必须至少显示1px 该条如下所示: 排水沟的铺设方法如下所述: 这里有一个代码笔,它提供了一个工作示例: 我面临的问题是,当任何一种颜色的相对比例足够小时,最后一个颜色区域将换行到下一行,如下所示: 要复制此问题,请访问codepen项目,并将其输入为阈值数组值: [{"value":0,"color":"LightGreen"}, {"value

我正在创建一个UI控件。它是一个条形图,根据输入以相对比例显示彩色区域。一些要求是在颜色之间有一个1px的边沟,并且无论相对宽度有多小,每种颜色都必须至少显示1px

该条如下所示:

排水沟的铺设方法如下所述:

这里有一个代码笔,它提供了一个工作示例:

我面临的问题是,当任何一种颜色的相对比例足够小时,最后一个颜色区域将换行到下一行,如下所示:

要复制此问题,请访问codepen项目,并将其输入为阈值数组值:

[{"value":0,"color":"LightGreen"},
{"value":50,"color":"PaleGoldenrod"},
{"value":5000,"color":"LightSalmon"},
{"value":10000,"color":"Salmon"}]
在本例中,浅绿色区域的宽度样式为0.33333%。在150px的棒材宽度下,这相当于0.495px。但是,由于要求每种颜色至少显示1px的宽度,浅绿色区域消耗2px的宽度(1px内容+1px填充)


感谢您的任何见解

您可以使用csscalc函数从每个截面的宽度计算中减去1px边距。[例如]


好建议!这里的问题是,在某些情况下,钢筋现在太小(不要占据容器的整个宽度)。只有3个垫片(3px),但总共减去4px。
[{"value":0,"color":"LightGreen"},
{"value":50,"color":"PaleGoldenrod"},
{"value":5000,"color":"LightSalmon"},
{"value":10000,"color":"Salmon"}]
coloredAreas.push({
  color: thresholds[i].color,
  width: 'calc(' + width + '% - 1px)'
});