现有asp.net web表单网站的白色标签

现有asp.net web表单网站的白色标签,asp.net,css,webforms,white-labelling,Asp.net,Css,Webforms,White Labelling,我要求为每位客户提供现有asp.net web表单站点的白色标签(特别是更改标题徽标/菜单/字体颜色)。客户将能够为网站选择他们想要的颜色 该网站是一个门户网站,由多个网站组成。我不想使用主题或不同的母版页,因为我们没有足够的带宽来重组应用程序。就我所知,我有几个选择。我想知道是否有更多或有人知道其他更好/最好的方法来做到这一点。前两个选项可能相似,但其中一个可能性能更好 为所有“颜色变化”部分创建一个虚拟css类,比如customColor 例子 <div class="menu cus

我要求为每位客户提供现有asp.net web表单站点的白色标签(特别是更改标题徽标/菜单/字体颜色)。客户将能够为网站选择他们想要的颜色

该网站是一个门户网站,由多个网站组成。我不想使用主题或不同的母版页,因为我们没有足够的带宽来重组应用程序。就我所知,我有几个选择。我想知道是否有更多或有人知道其他更好/最好的方法来做到这一点。前两个选项可能相似,但其中一个可能性能更好

为所有“颜色变化”部分创建一个虚拟css类,比如customColor

例子

<div class="menu customColor" />
<div class="header customColor" />

菜单和标题css类包含除颜色以外的所有样式

  • 加载母版页时,以编程方式向该css类添加颜色。伪代码:
    Page.Header.Controls.Add(新的LiteralControl(“.customColor{color:blue}”);

  • 让asp.net ashx处理程序返回包含
    customColor{color:blue};
    的whiteLabel.css,并将此css动态添加到页面中

  • 不是每个页面中都有那么多的元素需要更改。您可以在每个页面中使用一个函数,从数据库中设置适当的颜色

  • 我假设我的选项基本上是动态更改css或以编程方式为单个元素设置颜色


    此外,我认为使用选项1可能比选择选项2更好,因为css是否缓存在选项2中?这将使公司很难更改颜色。

    您的所有页面都使用公共母版页吗? 如果是这样,那么我曾经使用过为body设置一个类,或者可能是一个div包装器,如:

    <div class='<%= GetCustomClass() %>'>
        <div class="menu customColor" />
        <div class="header customColor" />
    </div>
    

    希望这会有所帮助。

    让我们排除选项3,如果页面加载过程中出现javascript错误,它可能无法重新构建页面

    这就剩下了选项1,尽管您可能需要更具可读性的内容:

    <style>
        .menu.customColor { color: <%= menuColor %>; }
        .header.customColor { color: <%= headerColor %>; }
    </style>
    
    
    .menu.customColor{color:;}
    .header.customColor{color:;}
    
    我会选择选项#1。确保正确编码用户提供的任何样式信息,以免暴露自己。
    <style>
        .menu.customColor { color: <%= menuColor %>; }
        .header.customColor { color: <%= headerColor %>; }
    </style>