设置元素宽度没有" px"

时间:2015-09-22 07:52:15

标签: javascript css d3.js

我之前编写如下代码没有问题:

d3element.style("width", width)

然而,几分钟前,即使我没有在Chrome和Firefox中更改任何JavaScript,它也突然停止工作。我必须手动添加"px"才能使其正常工作:

d3element.style("width", width + "px")

这可能是什么原因?它是浏览器更新吗?

Here是JSFiddle。

3 个答案:

答案 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;
}