【问题标题】:Asp.Net MVC overriding Class CSSAsp.Net MVC 覆盖类 CSS
【发布时间】:2018-09-24 06:37:52
【问题描述】:

我有一个 H1 标签,里面有一个从代码生成的锚标签

<div class=".slide-title">
    <H1>    
    @RenderLinkTracking(m => m.btn, Model.bTnTitle)    
    </H1>
</div>

RenderLinkTracking 创建锚标记

<a href="/home/" data-id="Image Title<">Image Title</a>

锚标签的CSS是

.slide-title a
{
color : red;
}

我正在尝试覆盖锚标记的 CSS。这就是我的工作方式和工作方式

<style>
@if (Model.Param.H1CSS!= null)
{
<text>
.slide-title a
  {
 @Html.RenderCSSAndJSAttributes(Model.Param.H1CSS).ToString().Replace("style=","")
  }
 </text>
}
</style>

Html.RenderCSSAndJSAttributes 方法正在生成样式color:#001595 !important;font-family:Book Antiqua !important;Text-align:10px;Text-align:Center 有没有更好的方法来覆盖类 CSS 或使用 jquery 附加内联 CSS?任何建议将不胜感激。

提前致谢

【问题讨论】:

  • 你的班级应该是"slide-title" 而不是".slide-title"。类名中没有句点。

标签: javascript c# css asp.net-mvc asp.net-mvc-4


【解决方案1】:

更改自定义助手可能如下所示:

namespace System.Web.Mvc {
    public static class HtmlHelperExtensions {
        public static MvcHtmlString RenderLinkTracking(this HtmlHelper helper, string url, string linkText, string style) {
            //...
            return MvcHtmlString.Create(String.Format("<a href='{0}' style='{1}'>{2}</a>", url, style, linkText));
        }
    }
}

所以您可以像这样为每个自定义链接传递样式:

<div class=".slide-title">
    <H1>    
    @RenderLinkTracking(m => m.btn,Model.yourUrl, Model.bTnTitle, Model.Param.H1CSS)    
    </H1>
</div>

【讨论】:

    【解决方案2】:

    简单的解决方案是为锚层次结构创建另一个 CSS 样式 .slide-title h1 a

    .slide-title a
    {
      color:#001595!important;
    }
    
    .slide-title h1 a
    {
      color: green!important;
    }
    <div class="slide-title">
        <h1>    
        <a href="/home/" data-id="Image Title<">H1 Anchor</a>    
        </h1>
        
        <a href="/home/" data-id="Image Title<">Simple Anchor</a>
    </div>

    【讨论】:

      猜你喜欢
      • 2023-03-24
      • 2011-12-14
      • 2011-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-01
      • 1970-01-01
      相关资源
      最近更新 更多