播放框架SASS模块包括每页



你好,我想在play应用程序中使用sass模块。我们已经在使用press缩小css,并使用#{press.stylesheet'path/to/mystylesheet.css'}在各个视图中包含css文件。我的问题是,我可以像使用press.stylesheet那样使用SASS在每页的基础上包含各个视图吗?

此外,如果我们能做到这一点,我假设我们不需要再为css文件按下,因为SASS可以自己进行缩小。

Sass是一种CSS元语言,所以它的输出是CSS文件。它不是为了在视图中动态插入css而构建的。

您可以使用sass部分将代码分隔成模块化文件,但随后将它们组合成一个css文件。通过在类下嵌套导入语句,您可以在分部中的每个选择器字符串前面加上每页唯一的类。

这将导致一个更大的css文件,但它只会被下载一次,并将被浏览器缓存以用于所有后续的页面请求。

以下是如何做到这一点…

带有嵌套Partials的Sass样式表

步骤1.创建一个包含所有共享默认样式的默认Sass文件。我们称之为screen.sass

步骤2.为每个页面创建部分:

_about.sass
_contact.sass
_home.sass

步骤3.在页面的body标签中动态添加一个唯一的类以识别它们:

about-page
contact-page
home-page

你的文件结构应该是这样的:

partials/
  _about.sass
  _contact.sass
  _home.sass
screen.sass

步骤4.screen.sass文件中执行以下操作:

// Shared default styles
div
  color: #fff
.home-page
  @import partials/home
.about-page
  @import partials/about
.contact-page
  @import partials/contact

假设每个部分都包含更改div元素默认颜色的规则,这将导致以下结果:

// Shared default styles
div {
  color: #fff
}
.home-page div {
  color: #00f
}
.about-page div {
  color: #0ff
}
.contact-page div {
  color: #f0f
}

最新更新