css - 使用 Clojure Hiccup 呈现样式信息的惯用方式

标签 css clojure hiccup

我需要在 hiccup 中构建样式信息,以便将元素放置在变量“top”和“left”指示的位置。我的代码如下所示:

(html [:div {:style (str "top" top ";left" left)} "some text"])

这段代码非常难看。如果 hiccup 使用标准的 CSS 样式规则自动呈现“style”属性会更好......然后我可以编写以下内容:

(html [:div {:style {:top top :left left}} "some text"])

是否已经有库可以执行此操作?或者,我需要推出自己的解决方案吗?

感谢 Clojurians 的指点!

最佳答案

您可以编写一个函数来执行此操作,而且它的输入量甚至会比 map 少一些。例如:

(defn style [& info]
  {:style (.trim (apply str (map #(let [[kwd val] %]
                                   (str (name kwd) ":" val "; "))
                                (apply hash-map info))))})

哪个可以让你这样写...

(html [:div (style :top top :left left) "some text"])

函数的示例输出...

user=> (style :top 32 :left 14)
{:style "top: 32; left: 14;"}

关于css - 使用 Clojure Hiccup 呈现样式信息的惯用方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12679754/

相关文章:

html 链接在 iphone 上不起作用

clojure - 我如何从clojure中给定的两个值一个一个地调用一个函数

clojure - 打ic 1.0.0-beta1错误

Clojure: zipper -> html

javascript - 我无法在打印预览中看到 div 的背景图像

jquery - 在 CSS/Jquery 中创建渐变网格

html - css flexbox,带有约束的可变高度顶部和底部

emacs - emacs 中的 clojure cider repl 无法从核心异步回调打印

post - 无法在 Clojure 中完成 POST 请求

clojure/compojure/hiccup NullPointerException