10

変数 "top" と "left" で示される位置に要素を配置するには、hiccup 内にスタイル情報を作成する必要があります。私のコードは次のようになります。

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

このコードはかなり醜いです。hiccup が標準の CSS スタイル ルールを使用して "style" 属性を自動的にレンダリングした方がよいでしょう...次に、次のように記述できます。

(html [:div {:style {:top top :left left}} "テキスト"])

これを行うライブラリはすでにありますか?または、独自のソリューションを展開する必要がありますか?

Clojurians さん、ご指摘ありがとうございます。

4

3 に答える 3

11

それを行う関数を書くことができ、マップよりも入力がわずかに少なくなります。例えば:

(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;"}
于 2012-10-03T04:36:26.517 に答える
0

Clojure にはまだあまり触れていませんが、Enlive のような「変換」ベースのアプローチは、この種のニーズに対するソリューションのように思えます - https://github.com/cgrand/enlive

于 2013-11-21T17:55:26.497 に答える