Skip to content

CSS DSL

所需依赖项io.ktor:ktor-server-html-builder, org.jetbrains.kotlin-wrappers:kotlin-css

代码示例 css-dsl

CSS DSL 扩展了 HTML DSL,并允许您使用 kotlin-css 包装器在 Kotlin 中编写样式表。

详细了解如何通过提供静态内容以静态内容的形式提供样式表。

添加依赖项

CSS DSL 不需要安装,但需要在构建脚本中包含以下构件:

  1. 用于 HTML DSL 的 ktor-server-html-builder 构件:

    Kotlin
    Groovy
    XML
  2. 用于构建 CSS 的 kotlin-css-jvm 构件:

    Kotlin
    Groovy
    XML

    您可以将 $kotlin_css_version 替换为所需的 kotlin-css 构件版本,例如 1.0.0-pre.625

提供 CSS

要发送 CSS 响应,您需要通过添加 respondCss 方法来扩展 ApplicationCall,该方法将样式表序列化为字符串,并使用 CSS 内容类型发送给客户端:

kotlin
suspend inline fun ApplicationCall.respondCss(builder: CssBuilder.() -> Unit) {
    this.respondText(CssBuilder().apply(builder).toString(), ContentType.Text.CSS)
}

然后,您可以在所需的路由中提供 CSS:

kotlin
get("/styles.css") {
    call.respondCss {
        body {
            backgroundColor = Color.darkBlue
            margin = Margin(0.px)
        }
        rule("h1.page-title") {
            color = Color.white
        }
    }
}

最后,您可以将指定的 CSS 用于通过 HTML DSL 创建的 HTML 文档:

kotlin
get("/html-dsl") {
    call.respondHtml {
        head {
            link(rel = "stylesheet", href = "/styles.css", type = "text/css")
        }
        body {
            h1(classes = "page-title") {
                +"Hello from Ktor!"
            }
        }
    }
}

您可以在此处找到完整示例:css-dsl