Требуется ли метод getPropertyValue для получения CSS?

Не могли бы вы сказать мне, почему мы должны использовать getPropertyValue метод, если мы можем использовать только getComputedStyle один?

Например, это будет работать, насколько я понимаю:

var s = getComputedStyle(element, null).opacity;

Что эквивалентно следующему:

var s = getComputedStyle(element, null).getPropertyValue('opacity');

Можем ли мы использовать getComputedStyle без getPropertyValue?

2 ответа

Решение

Согласно старому стилю DOM L2, getPropertyValue не требовалось:

CSS2Properties Интерфейс представляет удобный механизм для извлечения и установки свойств в пределах CSSStyleDeclaration, Атрибуты этого интерфейса соответствуют всем свойствам, указанным в CSS2. Получение атрибута этого интерфейса эквивалентно вызову getPropertyValue метод интерфейса CSSStyleDeclaration. Установка атрибута этого интерфейса эквивалентна вызову setProperty метод CSSStyleDeclaration интерфейс.

Однако реализации не требовали его поддержки, поэтому использование getPropertyValue было безопаснее.

Соответствующая реализация модуля CSS не требуется для реализации CSS2Properties интерфейс.

Но в соответствии с более новым CSSOM, используя Camel-чехол без getPropertyValue должно работать:

Для каждого свойства свойства CSS, которое является поддерживаемым свойством CSS, применяется следующий частичный интерфейс, в котором атрибут camel-cased получается путем запуска свойства CSS для алгоритма атрибута IDL для свойства.

partial interface CSSStyleDeclaration {
    attribute DOMString _camel-cased attribute;
};

camel-cased attribute атрибут, при получении, должен возвращать результат вызова getPropertyValue() с аргументом, являющимся результатом запуска атрибута IDL для алгоритма свойства CSS для атрибута верблюжьей оболочки.

Настройка camel-cased attribute атрибут должен вызывать setProperty() первый аргумент является результатом запуска атрибута IDL для алгоритма свойства CSS для атрибута верблюжьего доспеха, в качестве второго аргумента - заданное значение, а третьего аргумента нет. Любые исключения должны быть переброшены.

Следовательно, getPropertyValue больше не нужно получать значения CSS.

Я считаю, что это для свойств, которые не могут быть обозначены точками, как background-position, Хотя я полагаю, что возникает вопрос "почему бы не использовать скобки, то есть getComputedStyle(element, null)['background-position']Возможно, они просто хотели получить метод класса для класса (CSSStyleDeclaration).

Другие вопросы по тегам