在母版页中有个<ul>,多个使用该母版页的网页想实现该<ul>的li的颜色发生对应变化,该如何做呢

解决方案 »

  1.   

    有一点你记住,就可以自己琢磨。样式有也有继承关系,子继父。
    如:<div class="a">
    <div class="b"></div>
    </div>
    如果b中不存在a中的样式,也会呈现a的样式。原因就是a做为父,b做为子。b继承a的原因。
      

  2.   

    两种简单方法:
    1.在母版(假设类名为XXXMaster)cs中公开一个UlCssClass属性,
    页面中<ul class="<%=this.CssClass%>">...<ul>
    在各个子页的Page_Load中指定(this.Master as XXXMaster).UlCssClass="各颜色对应的样式"不过这类东西现在都习惯在加载页面时,让js来完成,服务端输出html就行了
      

  3.   

    like this?
    http://www.cnblogs.com/insus/archive/2012/09/25/2700939.html相似参考(不确定要求)
    http://www.cnblogs.com/insus/archive/2013/03/20/2970561.html
      

  4.   

     页面中加个hidden标识,页面加载的时候读取标识来给ul加上对应的css class
      

  5.   

    直接把ul li的样式写到页面里,html会就近选择样式的e
      

  6.   

    jQuery实现满简单的啊
    在模板页上判断当前页面是什么,然后对ul赋上对应的class
      

  7.   

    举个例子:
    /// <summary>
    ///MenuComplex 的摘要说明
    /// </summary>
    public class MenuComplex
    {
        public MenuComplex()
        {
            //
            //TODO: 在此处添加构造函数逻辑
            //
        }    /// <summary>
        /// 头部当前菜单样式
        /// </summary>
        public enum HeadMenuClass
        {
            index,
            about,
            services,
            products,
            newlist,
            contact
        }}用户控件head.ascx:
    <%@ Control Language="C#" AutoEventWireup="true" CodeFile="head.ascx.cs" Inherits="control_head" %>
    <div id="header">
    <div id="logo">
    <a href="index.html"><img src="images/logo.jpg" alt="" /></a>
    </div>
    <%=OutMenuHTML%>
    </div>
    using System;public partial class control_head : System.Web.UI.UserControl
    {
        public string OutMenuHTML = string.Empty;
        protected void Page_Load(object sender, EventArgs e)
        {
            System.Text.StringBuilder strb = new System.Text.StringBuilder();
            strb.AppendLine("<ul>");
            strb.AppendLine("<li" + (NowMenu.ToString() == "index" ? " class=\"selected\"" : "") + "><a href=\"index.html\"><span>首页</span></a></li>");
            strb.AppendLine("<li" + (NowMenu.ToString() == "about" ? " class=\"selected\"" : "") + "><a href=\"about.html\"><span>关于我们</span></a></li>");
            strb.AppendLine("<li" + (NowMenu.ToString() == "services" ? " class=\"selected\"" : "") + "><a href=\"services.html\"><span>服务与支持</span></a></li>");
            strb.AppendLine("<li" + (NowMenu.ToString() == "products" ? " class=\"selected\"" : "") + "><a href=\"products.html\"><span>产品展示</span></a></li>");
            strb.AppendLine("<li" + (NowMenu.ToString() == "newlist" ? " class=\"selected\"" : "") + "><a href=\"newlist.html\"><span>新闻中心</span></a></li>");
            strb.AppendLine("<li" + (NowMenu.ToString() == "contact" ? " class=\"selected\"" : "") + "><a href=\"contact.html\"><span>联系我们</span></a></li>");
            strb.AppendLine("</ul>");
            OutMenuHTML = strb.ToString();
        }    private MenuComplex.HeadMenuClass _nowmenu = MenuComplex.HeadMenuClass.index;
        public MenuComplex.HeadMenuClass NowMenu
        {
            get { return _nowmenu; }
            set { _nowmenu = value; }
        }
    }
    下面我们在不同的页面使用这个用户控件(先注册一下):
    <%@ Register Src="~/control/head.ascx" TagName="head" TagPrefix="UC" %>
    使用:
    <UC:head ID="Head1" runat="server" NowMenu="index" />
    只需要变动NowMenu属性即可。
    当然了,你用js获取url,然后分析一样可以用addClass去设置,不过对于重写的url情况你就会很难办的