CSS свойства не отображаются в ClojureScript - PullRequest
1 голос
/ 24 февраля 2020

У меня есть элемент dom (div) с некоторыми css свойствами, такими как background-color, padding et c., К которым я пытаюсь получить доступ так:

(prn (-> my-dom-element .-style .-background-color))

Но это печатает ноль. Однако, просто делая:

(prn (-> my-dom-element .-style)) 

печатает ожидаемый #object[CSSStyleDeclaration [object CSSStyleDeclaration]]

Что я делаю не так?

- Правка -

Я пробовал (prn (gs/getStyle my-dom-element "background-color")) с (:require [goog.style :as gs]), но это печатает пустую строку. Как мне это исправить?

1 Ответ

1 голос
/ 24 февраля 2020

background-color не является допустимым JS именем свойства, поскольку оно буквально будет background - color (MINUS). Компилятор всегда обращается к этому background_color, чтобы сделать его действительным JS, что, конечно, больше не является действительным CSS именем.

Однако, поскольку JS имеет ту же проблему, имена свойств стиля используют имена Обозначение camelCase, поэтому правильное имя будет backgroundColor.

Вы можете использовать (gs/getStyle my-dom-element "background-color") с (:require [goog.style :as gs]) в вашем ns, который позаботится о преобразовании имени свойства.

...