2015-09-22 3 views
3

у меня не было никаких проблем писать код, как показано ниже, прежде чем:настройка ширины элемента без «рх»

d3element.style("width", width) 

Однако несколько минут назад, он вдруг перестал работать, даже если я не изменил любой JavaScript, в обоих Chrome и Firefox. Я должен был добавить "px" вручную для того, чтобы работать:

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

Что может быть возможной причиной этого? Это обновление браузера?

Update:

Вот JSFiddle:

http://jsfiddle.net/56dg85hv/3/

Комментарий к вопросу Fallback for CSS attributes without unit решить мою проблему.

+0

добавить '%' вместо 'px' –

+0

@Amitsingh Мне известно о различии между' px 'и'% '. 'px' - абсолютная единица, а'% '- процентная единица. – paradite

+1

@ А ты с ума сошел? Это нечто совершенно другое! –

ответ

0

Это ожидаемое поведение, вы должны включить единицы, или он не будет работать последовательно.

Из официальной документации d3 API для selection.style:

Обратите внимание, что стили CSS обычно ассоциировали единиц. Например, «3px» является допустимым значением свойства ширины штриха, а 3 - нет. Хотя некоторые браузеры неявно назначают блок «px» (пиксель) на числовые значения, не все браузеры: IE, например, выдает ошибку «недопустимые аргументы» и прекращает выполнение!

https://github.com/mbostock/d3/wiki/Selections#style

Обратите внимание, что это имеет в основном делать с правилами CSS вместо d3 особенностей.

2

Оказалось, что это связано с добавлением <!DOCTYPE html> в мой HTML-файл. Я не знал, что это может привести к огромным различиям.

Ответ на комментарий этого вопроса: Fallback for CSS attributes without unit

Смежные вопросы