我之前编写如下代码没有问题:
d3element.style("width", width)
然而,几分钟前,即使我没有在Chrome和Firefox中更改任何JavaScript,它也突然停止工作。我必须手动添加"px"
才能使其正常工作:
d3element.style("width", width + "px")
这可能是什么原因?它是浏览器更新吗?
Here是JSFiddle。
答案 0 :(得分:2)
原来,这是因为我的HTML文件中添加了<!DOCTYPE html>
。我不知道它可能会造成巨大的差异。
答案在于这个问题的评论: Fallback for CSS attributes without unit
答案 1 :(得分:0)
这是预期的行为,你必须包括单位,否则它将无法一致地运作。
来自selection.style的官方d3 API文档:
请注意,CSS样式通常具有关联的单位。例如,“3px”是有效的笔画宽度属性值,而3则不是。虽然有些浏览器隐式将“px”(像素)单位分配给数值,但并非所有浏览器都这样做:例如,IE会抛出“无效参数”错误并停止执行!
https://github.com/mbostock/d3/wiki/Selections#style
请注意,这主要与CSS规则有关,而不是d3特性。
答案 2 :(得分:0)
您必须在号码后加入一个单位
Value Error : width only 0 can be a length. You must put a unit after your number : 50
查看https://jigsaw.w3.org/css-validator/#validate_by_input并输入
.width {
width: 50;
}