0

我在 C# MVC 网站中使用 Razor 向现有网站添加功能。

我正在尝试使用 CSS 指定我的 html 文本的颜色。我已经使用class说明符在站点的另一个区域成功地完成了此操作,并且效果很好。但是,我现在正在尝试更改链接的颜色(C# Hml.ActionLink()),并且即使使用!important.

此链接样式似乎范围很大,因此我无法更改它而不影响站点的其他区域。

我已经尝试过设置color属性,text-decoration-color并且都尝试过!important

有任何想法吗?顺便说一句,我对 CSS 很陌生。

哦,我可以看到我的 CSS 更改实际上正在 Chrome 开发人员工具中使用,但它们只是被覆盖(所以类的东西是正确的)。

剃须刀代码:

<div id="Project">
    @foreach (string name in Model.Foo)
     {
        string className = Model.Bar.Contains(name) ? "changed" : "unchanged";
        <p class=@className>@Html.ActionLink(foo)</p>
     }
</div>

CSS 代码(已尝试以下变体):

.changed {
    color: red !important;
}

.unchanged {
    text-decoration: none;
    text-decoration-color: blue !important;
}
4

4 回答 4

2

更改 CSS 选择器以指定内部元素

.changed a {...}
.unchanged a {...}

你也可以像这样更具体

.changed > a {...}
.unchanged > a {...}

> 表示您的锚点必须是类更改/未更改元素的直接后代。


与您的问题无关,但我想指出:

<p class="@className">@Html.ActionLink(foo)</p>

代替

<p class=@className>@Html.ActionLink(foo)</p>

(在你的情况下仍然有效,但有一天你会遇到一些奇怪的问题)

于 2013-08-06T17:10:20.587 回答
0

尝试更改选择器以增加特异性,

.changed a {
    color: red !important;
}

.unchanged a {
    text-decoration: none;
    text-decoration-color: blue !important;
}
于 2013-08-06T17:10:01.163 回答
0

正如您所描述的,您想更改链接颜色而不是 p 标签,所以试试这个

.changed a{
    color: red !important;
}

.unchanged a{
    text-decoration: none;
    text-decoration-color: blue !important;
}
于 2013-08-06T17:10:21.557 回答
0

您需要将 CSS 应用于锚标记,而不是段落标记,试试这个:

.changed a {
    color: red !important;
}

.unchanged a {
    text-decoration: none;
    text-decoration-color: blue !important;
}
于 2013-08-06T17:10:22.020 回答