如何设置CSS切换器

我正在开发一个网站,该网站将在某一日期切换到新的样式。该网站内置了语义HTML和CSS,因此更改应该只需要CSS参考更改。我正在与一位设计师合作,他需要能够看到它的外观,以及需要能够以当前外观审查内容更新的客户以及新外观的设计进度。

我打算在页脚中使用魔术querystring值和/或JavaScript链接来写出一个cookie来选择新的CSS页面。我们正在ASP.NET 3.5中工作。任何建议?

我应该提到,我们正在使用IE条件注释来支持IE8,7和6。我可能会创建一个替换功能:

<link href="Style/<% GetCssRoot() %>.css" rel="stylesheet" type="text/css" />
<!--[if lte IE 8]>
    <link type="text/css" href="Style/<% GetCssRoot() %>-ie8.css" rel="stylesheet" />

    <link type="text/css" href="Style/<% GetCssRoot() %>-ie7.css" rel="stylesheet" />

    <link type="text/css" href="Style/<% GetCssRoot() %>-ie6.css" rel="stylesheet" />
0

4 答案

您应该查看 ASP.NET 主题,这正是它们的用途。他们还允许你皮肤控制,这意味着给他们一套默认属性。

0
额外

在Asp.net 3.5中,您应该能够将标题中的链接标记设置为服务器标记。然后,在代码隐藏中,您可以根据cookie值,查询字符串,日期等设置链接元素的href属性。

在你的aspx文件中:

<head>
  <link id="linkStyles" rel="stylesheet" type="text/css" runat="server" />
</head>

在后面的代码中:

protected void Page_Load(object sender, EventArgs e) {
  string stylesheetAddress = // logic to determine stylesheet
  linkStyles.Href = stylesheetAddress;
}
0
额外
谢谢,没有想到这一点,但.NET并没有玩这个好:<link rel =“stylesheet”href =“/ style.css <�%= VersionQueryString%>”“type =”text / css“/>
额外 作者 Aaron,

我会做以下事情:

www.website.com/?stylesheet=new.css

然后在你的ASP.NET代码中:

if (Request.Querystring["stylesheet"] != null) {
    Response.Cookies["stylesheet"].Value = Request.QueryString["stylesheet"];
    Response.Redirect();
}

然后在你定义你的样式表的地方:

if (Request.Cookies["stylesheet"] != null) {
    // New Stylesheet
} else {
    // Default
}
0
额外
当用户导航到另一个页面时,你会做什么?来自外部链接?
额外 作者 Jason,

我建议将样式表选择存储在会话中,这样就不必依赖查询字符串密钥始终存在。您可以在Page_Load中检查会话并添加适当的样式表参考。这听起来像是一个临时/发展的情况,所以随便什么都行,并且工作。

if (!String.IsNullOrEmpty(Request.QueryString["css"]))
  Session.Add("CSS",Request.QueryString["css"]);
0
额外