提问人:Jim G. 提问时间:9/23/2023 最后编辑:Kevin BJim G. 更新时间:9/26/2023 访问量:72
如何使用预处理器指令有条件地包含特定的 CSS 代码段?
How can I use Preprocessor Directives to Conditionally Include Specific CSS Snippets?
问:
问题:
- 我有两个构建配置。每个都有自己的预处理器符号:DEV 和 PROD。
- 我希望每个版本都有自己的背景图像颜色。
- 对于 C# 文件,我知道我可以使用带有生成符号的预处理器指令来有条件地生成代码。
问:如何使用 CSS 文件(如下所示)执行此操作?
.page {
position: relative;
display: flex;
flex-direction: column;
}
main {
flex: 1;
}
.sidebar {
#if PROD
background-image: linear-gradient(180deg, #ff80ed 0%, gainsboro 90%);
#else
background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
#endif
}
更新:
- 或者,如果这能解决问题,我会很高兴创建一个。
site.css.dev
site.css.prod
答:
0赞
Jim G.
9/25/2023
#1
受此答案的启发:
- 从 中删除代码。
.sidebar
MainLayout.razor.css
- 在目录中添加两个新文件:
wwwroot\css
sidebar.Default.css
.sidebar {
background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
}
sidebar.Prod.css
.sidebar {
background-image: linear-gradient(180deg, #ff80ed 0%, gainsboro 90%);
}
- 修改如下:
_Layout.cshtml
<link href="css/site.css" rel="stylesheet" />
@{
var isProd = false;
#if PROD
isProd = true;
#endif
}
@if (isProd)
{
<link href="css/sidebar.Prod.css" rel="stylesheet" />
}
else
{
<link href="css/sidebar.Default.css" rel="stylesheet" />
}
<link href="FooBar.styles.css" rel="stylesheet" />
评论
site.css.dev
site.css
site.css
site.css