В реагенте можно указать встроенные стили CSS следующим образом:
[:div {:style {:border "1px solid red"}} "My Text"]
garden может сделать такие свойства CSS, содержащие несколько значений в списке, более общими. Векторы для списков, разделенных запятыми, и вложенные векторы (используемые здесь) для списков, разделенных пробелами:
(require '[garden.core :refer [style]])
(style {:border [[:1px :solid :black]]})
;= "border: 1px solid red;"
Как эти вещи можно совместить? Реагент, кажется, упрямо принимает только хэш-карты для атрибута стиля. Принятие строки также было бы решением здесь.
Как правило, встроенные стили не являются хорошим выбором в долгосрочной перспективе. Таким образом, это можно решить, присоединив класс к div
и указав его стиль глобально с помощью функции gardens css
.
Пример класса:
[:div.myclass "My Text"]
(css [:.myclass {:border [[:1px :solid :black]]}])
;= ".myclass {\n border: 1px solid black;\n}"
Однако иногда полезно начинать со встроенных стилей, поэтому: Есть ли способ сделать это так, как описано выше?
goog.style/installStyles
) и удаляю (goog.style/uninstallStyles
) при перезагрузке фигового колеса. Прекрасно работает. Вы не можете указать некоторые встроенные атрибуты, поэтому вы столкнетесь с проблемами раньше или позже. - person ClojureMostly   schedule 09.05.2016