我正在用d3做一些业余开发,并试图通过我的CSS表管理样式。但是,当我玩具尺寸和宽度等时,我发现自己经常手动调整其他参数以适应我的变化。 (例如,在改变刻度的字体大小时,我需要调整绘制这些刻度的图形边距。)是否有更可扩展的方式来设置/生成我的图表以允许这些更改而无需大量调整?这个工作流程似乎是一种反模式,但在进行低级图形工作时可能是必要的。
答案 0 :(得分:1)
您可以采取一些措施使图形响应字体大小,但它会增加代码,因此在大多数示例中都会跳过。
您可以使用getComputedStyle
来确定字体大小,并使所有边距与此成比例。或者要非常灵活,您可以先绘制轴,使用.getBBox
找到最长刻度标签的长度,然后使用它作为边距值来重新定位/调整所有内容。
不幸的是,没有相当于CSS calc
函数来轻松计算出像width = 100% - 5em
这样的值;你必须得到宽度和字体大小的计算样式,并自己计算。