Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 如何将scalacs应用于Scala.js.DOM元素?_Css_Scala.js - Fatal编程技术网

Css 如何将scalacs应用于Scala.js.DOM元素?

Css 如何将scalacs应用于Scala.js.DOM元素?,css,scala.js,Css,Scala.js,我正在使用Scala.js、scalatag和ScalaCSS 我了解了如何使用scalacs创建内联样式表,以及如何将CSS规则应用于ScalaTags元素。我正在使用ScalaTags在服务器中生成基本的框架HTML页面,要访问我的CSS,我有如下内容: html( UiPageCssInline.render[TypedTag[String]], head( ... 在HTML中定义的ScalaTags元素中,我可以轻松应用CSS规则,如: div(UiPageCssIn

我正在使用Scala.js、scalatag和ScalaCSS

我了解了如何使用scalacs创建内联样式表,以及如何将CSS规则应用于ScalaTags元素。我正在使用ScalaTags在服务器中生成基本的框架HTML页面,要访问我的CSS,我有如下内容:

html(
  UiPageCssInline.render[TypedTag[String]],
  head(
...
在HTML中定义的ScalaTags元素中,我可以轻松应用CSS规则,如:

    div(UiPageCssInline.logoStyle)(
...
但是,我也使用Scala.js(即js.dom)在页面加载时修改HTML。我不知道如何在那里同样地应用CSS规则。我发现编译错误,例如:

type mismatch;
[error]  found   : scalacss.StyleA
[error]  required: scalatags.JsDom.Modifier
[error]     (which expands to)  scalatags.generic.Modifier[org.scalajs.dom.raw.Element]
[error]   val focusedNodeInfoBox = div(UiPageCssInline.focusedNodeInfoStyle)().render
[error]                                                ^
如何将内联CSS应用于动态创建的元素?这是否应该起作用(也许我只是把SBT依赖关系搞砸了)?我可以这样使用ScalaCSS生成的内联规则吗


如果不是,如果我不想构建和导出一个必须显式加载的单独样式表,那么还有什么选择呢?(或者人们就是这样做的?

啊,看起来我需要使用这样的语法:

div( cls := UiPageCssInline.focusedNodeInfoStyle.htmlClass).render
你需要这个进口

import scalacss.ScalatagsCss._ //this will do all magic using implicits 
如果您没有添加ext scalatags模块,那么您还必须添加该模块

libraryDependencies += "com.github.japgolly.scalacss" %%% "ext-scalatags" % "0.2.0"
之后

div(UiPageCssInline.logoStyle)
会很好:)

官方文件: