我正在考虑如何为网站制作主题Yii2
。从模板创建advanced
。
现在在web
服务器指向的目录中,有这样一个结构:
_dev/
sass/
_global.scss
_vars.scss
site.scss
css/
site.css
一切都_dev/sass/*
编译为css/*
.
如果不sass
将它放在旁边web
,或者直接放入具有以下结构的web
目录中,我将如何做themes
:
themes/
classic/
css/
mod1/
mod.css
mod2/
mod.css
theme.css
因此,这些文件theme.css
将mod.css
覆盖现有样式,或添加新样式。结果,css
页面上将连接 3 个文件:
main.css - основные стили
theme.css - изменения для темы
mod.css - изменения для модификации темы
但是sass
最好使用带有变量的计数器。例如,在mod.scss
我只会存储重新定义的带有颜色和图片的变量。
第一种选择:我css
按照.sass
css
第二种选择:我为css
. mod.scss 将被编译。我不喜欢这种方法,因为 每个主题中都会有一堆重复的 css(虽然我不会使用它,因为我只编辑 sass 文件......)mod.sass
combine.sass
第三种选择:有Yii2
sass、less 等的内置预处理器。AssetBundle
以及指定的能力sourcePath
,以便框架本身将文件复制到可从 Web 访问的位置。并使用它尝试描述 AssetBundle 中的主题逻辑(而不是通过 config themes
),以便仅为活动主题编译必要的文件。(但我还不知道怎么做)
你能告诉我,在你看来,按照计划去做会更好吗?或者也许有人已经实现了类似的东西?感谢您的任何想法。
一般来说,我是这样做的。主题分为以下几个部分:
面具。重新定义站点网格。也许是一个全新的设计。
修改。重新定义网站的某些部分。小部件、组件、列表或其他任何东西。
风格。仅包含带有颜色、字体、图片等的变量。
话题。包含一个 sass 文件,仅包含上述文件的包含。编译到 web 文件夹中的适当位置
主题 v1 掩码 sass 视图 mods footer.v2 左侧栏样式 默认深蓝色主题 默认 sass 深蓝 sass v2 掩码 mods 样式主题