Clojure Hiccup을 사용하여 스타일 정보를 렌더링하는 관용적 방법
문제
변수 "top"및 "left"로 표시된 위치에 요소를 배치하려면 딸꾹질에서 스타일 정보를 작성해야합니다.내 코드는 다음과 같습니다 :
(html [: div {: Style (style) "왼쪽"왼쪽 "왼쪽)} "일부 텍스트"])
이 코드는 꽤 못생긴 것입니다.Hiccup이 표준 CSS 스타일 규칙을 사용하여 "스타일"속성을 자동으로 렌더링 한 경우 ... 다음을 쓸 수 있습니다.
(html [: div {: style {: 맨 위로 : 왼쪽 왼쪽}}}} "일부 텍스트"])
이미이 라이브러리가 있습니까?또는, 내 솔루션을 굴릴 필요가 있습니까?
어떤 포인터를 위해 Clojurians에게 감사드립니다!
해결책
당신은 그 일을 할 수있는 함수를 작성할 수 있으며지도보다 약간 덜 타이핑 할 것입니다.예 :
(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;"}
. 다른 팁
이것은 어떨까요 :
(defn style [s]
(str/join ";" (map #(str (name %) ":" ((keyword %) s)) (keys s))))
(style {:padding "20px"
:background "#e68a00"
:color "white"
:font-size "large"
:font-weight "bold"})
. 은 아직 collure에별로 없지만 이러한 종류의 요구를위한 솔루션과 같은 주음의 소리와 같은 '변형'기반 접근법 - https://github.com/cgrand/enlive
제휴하지 않습니다 StackOverflow