我正在学习 Elm,当你想要设置样式时,可以简单地将其嵌入到你的组件中:Html.Attribute.style List (String, String)
但是我无法找到一种方法来获取样式而不是设置。实际上,我需要的是特定 Html msg
的 line-height
(CSS 属性)。我阅读了一些关于使用自定义解码器(使用 Json.Decode.at
)的文章,但仍然没有理解。
我正在学习 Elm,当你想要设置样式时,可以简单地将其嵌入到你的组件中:Html.Attribute.style List (String, String)
但是我无法找到一种方法来获取样式而不是设置。实际上,我需要的是特定 Html msg
的 line-height
(CSS 属性)。我阅读了一些关于使用自定义解码器(使用 Json.Decode.at
)的文章,但仍然没有理解。
import Html exposing (..)
import Html.Attributes exposing (..)
import Html.Events exposing (on)
import Json.Decode
main =
beginnerProgram { model = "", view = view, update = update }
type Msg = Attr StyleStruct
type alias StyleStruct =
{lineHeight: String}
view model =
div []
[ button [ id "btn"
, class "cls"
, style [("color", "green"), ("line-height", "3em")]
, myOnClick Attr ]
[ text "Show line-height" ]
, div [] [ text ("(" ++ model ++ ")")]
]
update msg model =
case msg of
Attr v1 ->
toString v1
targetStyle =
Json.Decode.map StyleStruct
(Json.Decode.at ["target", "style"] styleStructDecoder)
styleStructDecoder =
Json.Decode.at ["line-height"] Json.Decode.string
myOnClick : (StyleStruct -> msg) -> Html.Attribute msg
myOnClick tagger =
on "click" (Json.Decode.map tagger targetStyle)
className
。我已经编辑了上面的回复。 - pakx
div {height: 3lines}
,那么生活会变得轻松得多。相反,他们发明了越来越多的度量单位,这些单位对我们已经拥有的东西没有任何新的贡献。 - Mr Listeroverflow: set-the-width-according-to-content-overflow
的东西。 - Mateus Felipe