ASP.Net使用CSS换肤
常常看到有的网站通过DropDownList、菜单或按钮实现对整个网站改变页面风格(换肤)。专门Google了一些这方面的资料,总结了一下实现以上功能大致可以分成两类: <link rel=stylesheet type=text/css href=mycss.css /> </head> 如果需要切换CSS,就不能再定死这个<link>了。可以通过后台代码动态地改变这个控件的属性。 可以用<asp:placeholder>控件来代替。placeholder控件可以理解成一个控件的容器,就像一个透明的包,你往里面装什么,它就是什么。 现在页面变成了这个样子,我们在里面放了一个空的placeholder来代替link. <head> <asp:placeholder id="MyCss" runat="server"/> </head> 在后台代码中定义一个函数,负责往placeholder里装东西,这里装css文件 { //生成一个新的HtmlGenericControl控件,它是一个link控件 HtmlGenericControl objLink = new HtmlGenericControl("link"); //定义这个Link的各项属性 objLink.ID = ID; objLink.Attributes["rel"] = "stylesheet"; objLink.Attributes["type"] = "text/css"; objLink.Attributes["href"] = cssFile; //把Link控件加到PlaceHolder控件中去 MyCss.Controls.Add(objLink); }
{ // 在此处放置用户代码以初始化页面 if(!Page.IsPostBack) { //判断客户端的浏览器是否支持Cookie if(Request.Browser.Cookies == false) label1.Text = "浏览器不支持Cookie !"; else label1.Text = "浏览器支持Cookie !"; //客户端是否有Skin信息保存 if(Request.Cookies["Skin"] == null) { ChangeSkin("default.css"); label2.Text = "Cookie 为空,默认CSS"; } else { //根据客户端保留的Cookie信息,来加载不同的CSS样式表文件 switch(Request.Cookies["Skin"].Value) { case "Red" : ChangeSkin("mycss2.css"); label2.Text = "Cookie中的CSS为红色"; break; case "Blue" : ChangeSkin("mycss.css"); label2.Text = "Cookie中的CSS为蓝色"; break; default: ChangeSkin("default.css"); // break; } } } |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |