html - 将整数值从 html 传递到 scss
问题描述
我想做这样的事情
html
<div class="myClass" givenValue="myValue">myText</div>
scss
.myClass {
@if (givenValue < 0) {
color: red;
} @else {
color: black;
}
}
目标实际上是将样式从 html 转移到 scss。例如,在 Angular 中可以使用 ngClass ,但这不是我想要做的。
我知道有可能做到这一点
html
<div class="fill-color" style="--color: blue;">Test</div>
scss
.fill-color {
color: var(--color);
}
这是想法,但不幸的是,这不是我的情况的解决方案,因为我有一个整数和 @if 语句。
提前感谢您的建议!
解决方案
你不能。SCSS 是经过预处理的。当涉及到 HTML 时,为时已晚。你不再有 SCSS,只有 CSS。
考虑改用 JavaScript。
document.querySelectorAll('.myClass').forEach(element => {
if (element.dataset.givenValue < 0) element.classList.add("negative")
});
.myClass {
color: black;
}
.myClass.negative {
color: red;
}
<div class="myClass" data-given-value="-1">myText</div>
<div class="myClass" data-given-value="0">myText</div>
<div class="myClass" data-given-value="1">myText</div>
或者在 HTML 到达浏览器之前使用服务器端代码生成类名。
推荐阅读
- mysql - 我的代码没有将数据插入数据库
- laravel - Laravel 队列 - 我的 aync 队列不会触发电子邮件,而同步队列会触发
- python - 如何将2个列表中的项目连接成一个字符串
- list - 如何在 SwiftUI 列表中设置选定的行背景颜色?
- python-3.x - 我正在尝试编写一个重要的代码,但在第一行出现错误“SyntaxError:无效语法”,箭头指向“来自”
- python - 为什么 |= 可以对 Python 中的字典进行就地值更新?
- javascript - 在 React 中,单击时如何向按钮添加类
- javascript - FancyTree DnD 如何只允许放入有效文件夹而不是在父文件夹之外
- lua - 如何将字符串时间戳转换为 Lua(或其他语言)中的数组
- java - 如何通过一些基本的密码保护/身份验证从第三方应用程序(例如 Java 应用程序)访问 Laravel 存储中的文件?