sass - 在不同的视图中在引导程序中获取不同的主题
问题描述
我想用引导程序为页面设置主题,但在某些页面中,我只想为按钮设置主题并保持输入字段不变,而在其他页面中,我想以相反的方式进行,只为输入字段设置主题而不是按钮。
我希望能够写出类似的东西
在第 1 页中:
@import input-theming.css ... 使用按钮的默认样式
在第 2 页:
@import button-theming.css ... 对输入使用默认样式
我已经考虑过在组件中模块化我的custom.scss以便我在每个组件中为不同的部分设置主题,例如输入、按钮、表格等。但是我必须为每个组件创建一个 custom.scss 文件那些看起来很复杂的模块的组合。
我想要的是一种恢复引导程序某些部分的默认行为的方法,尽管我在 custom.scss 中对它们进行了不同的主题化。如果不生成仅以引导程序的不同部分为主题的不同 custom.scss 文件,这是否可能?
解决方案
SASS 允许您嵌套导入。因此,您可以为每个“主题”(自定义组合)使用父类,然后将适当的主题 CSS 类添加到每个页面的 HTML 父容器(html、body、.container 等)。这允许您将所有 SASS 覆盖/更改保存在一个custom.scss
文件中。
@import "bootstrap/functions";
@import "bootstrap/mixins";
@import "bootstrap/variables";
.theme-1 {
/* change the button style */
.btn-primary {
@include button-variant(green, green);
}
}
.theme-2 {
/* change the input style */
$input-bg: #ddd;
@import "bootstrap/forms"
}
@import "bootstrap"
HTML 第 1 页(自定义按钮)
<body class="theme-1">
<div class="container py-2">
<div class="row">
<div class="col">
<div class="input-group">
<input type="text" class="form-control" placeholder="Username">
<div class="input-group-append">
<button class="btn btn-primary" type="button" id="addon">Button</button>
</div>
</div>
</div>
</div>
</div>
</body>
HTML 页 2(自定义输入)
<body class="theme-2">
<div class="container py-2">
<div class="row">
<div class="col">
<div class="input-group">
<input type="text" class="form-control" placeholder="Username">
<div class="input-group-append">
<button class="btn btn-primary" type="button" id="addon">Button</button>
</div>
</div>
</div>
</div>
</div>
</body>
推荐阅读
- javascript - 如何在 React 中更改导入组件的 CSS 属性
- google-cloud-sdk - 在 Ubuntu 上安装 Google Cloud SDK 时出错,如何解决?
- r - 识别向量的第一次出现,其中 15 个值中有 12 个为 1
- sql-server - 无法使用变量执行 SQL Server 存储过程(找不到存储过程)
- c++ - 为 QDoubleSpinBox 的多个实例创建一个公共插槽
- javascript - 使用 javascript 设置 PHP 表单数组变量
- python - Python for loop variable(K) in range(1,11) 如何在 HHkC 之类的词中使用并显示 HH1C、HH2C......HH10C?
- postgresql - 在 Postgres 中插入多个表时是否保留顺序
- multi-tenant - 将项目级用户分配给多个租户
- spring - 如何使用集群中的所有 pod 订阅亚马逊 SNS 主题?