首页 > 解决方案 > 字段中css类的动态变化

问题描述

我想更改 (td) 字段中的颜色 [更改颜色 - 更改/转移到不同的 css 类?]

条件: 条件来自“if”查询。如果 (sb == true) 则没有任何变化,如果 (sb == false) "[else]" 那么 (td class="InputsForUserColor1") 中的 css 类可能会更改为 class="InputsForUserColor1Change"。

注释 (td class="InputsForUserColor2") 不变

我的 html 代码(razor/C#): 变量“sb”在“if”之外,假设不同的值

 @for (int sth = 0; sth< ViewBag.sth; sth++)
{
                if (sb == true)
                {
                    varSth = "00:00";

                }
                else
                {
                   varSth = "20:00";

                }
                         @for (int sthElse = 0; sthElse< ViewBag.sthElse; sthElse++)
                          {
                                if (nr_columns == 2)
                                {
                                    <td id="td01" class="InputsForUserColor1"></td>
                                }
                                if (nr_columns == 3)
                                {
                                    <td id="td01" class="InputsForUserColor2"></td>
                                }
                          }
}

我的 CSS 代码:

.InputsForUserColor1, area {
    background-color: papayawhip;
    border: hidden;
    align-content: center;
    align-items: center;
    vertical-align: central;
}

.InputsForUserColor1Change, area {
    background-color: white;
    border: hidden;
    align-content: center;
    align-items: center;
    vertical-align: central;
}

我个人没有写它,因为我不知道如何处理它

标签: c#htmlcssasp.netrazor

解决方案


如果颜色应该只设置一次,而页面在服务器上呈现:

  • 在 CSHMTL 页面的变量中设置目标类(带有 的 Razor C# 代码块@{})。
  • 使用此变量的值(Razor@variableName语法)。

    @* assume that 'sb' does not change its value inside the for loop *@
    @{ var userColor1 = sb == true ? "InputsForUserColor1" : "InputsForUserColor1Change"; }
    @for (int sth = 0; sth< ViewBag.sth; sth++) {
        @for (int sthElse = 0; sthElse< ViewBag.sthElse; sthElse++) {
            if (nr_columns == 2) {
                <td id="td01" class="@userColor1"></td>
            }
            else if (nr_columns == 3) {
                <td id="td01" class="InputsForUserColor2"></td>
            }
        }
    }
    

当页面交付给客户端浏览器时,这将使用正确的类集呈现 HTML。

如果由于客户端(浏览器)端的用户交互而需要更改颜色,这将不起作用。在这种情况下,您必须使用客户端脚本 (JavaScript) 来动态更改颜色。为此,请参阅jQuery addClass


推荐阅读