首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将ScalaCSS应用于Scala.js JS.DOM元素?

如何将ScalaCSS应用于Scala.js JS.DOM元素?
EN

Stack Overflow用户
提问于 2015-06-03 00:11:39
回答 2查看 952关注 0票数 2

我在玩Scala.js、ScalaTags和ScalaCSS。

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

代码语言:javascript
复制
html(
  UiPageCssInline.render[TypedTag[String]],
  head(
...

在该超文本标记语言中定义的ScalaTags元素中,我可以很容易地应用CSS规则,例如:

代码语言:javascript
复制
    div(UiPageCssInline.logoStyle)(
...

但是,当页面加载时,我也使用Scala.js (即js.dom)来修改HTML.我想不出如何在那里应用类似的CSS规则。我得到编译错误,例如:

代码语言:javascript
复制
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生成的内联规则吗?

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

EN

回答 2

Stack Overflow用户

发布于 2015-06-03 19:27:38

您需要此导入

代码语言:javascript
复制
import scalacss.ScalatagsCss._ //this will do all magic using implicits 

如果您没有添加ext-scalatags模块,则还必须添加该模块

代码语言:javascript
复制
libraryDependencies += "com.github.japgolly.scalacss" %%% "ext-scalatags" % "0.2.0"

在那之后

代码语言:javascript
复制
div(UiPageCssInline.logoStyle)

将编译得很好:)

官方文档:https://japgolly.github.io/scalacss/book/ext/scalatags.html

票数 1
EN

Stack Overflow用户

发布于 2015-06-03 02:48:12

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

代码语言:javascript
复制
div( cls := UiPageCssInline.focusedNodeInfoStyle.htmlClass).render
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30601228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档