ASP.NET页面处理CSS文件

问题描述:

我知道ASP.NET可以配置为以任何方式处理任何文件类型,但即使在周末,我们大多数人也有其他工作要做。我成为一个asp.net处理流水线,比如说很感兴趣,* .csx文件,在那里我可以这样做:ASP.NET页面处理CSS文件

.module-div h2 
{ 
    margin-top: 5px; 
    color: [css:Color runat="server" Selector-Include="h2" /] 
} 

然后在后面的代码,我可以遍历所有的颜色与选择控件,包括“h2”并分配相同的颜色。当我决定更改一般方案颜色时,我发现自己经常替换颜色常量。

+4

它那种看起来像你忘了CSS的“级联”部分。为什么每个h2元素都有自己的颜色声明?在h2元素(或其他“绿色”元素或其他东西)中声明一次,然后在需要更具体时覆盖非颜色属性。 – dnord 2009-08-25 14:44:53

+0

它是需要重复颜色规格的其他元素中的h2元素。 – ProfK 2009-08-26 00:05:44

这听起来像lesscss正在尝试成为一样。有一个.net端口,您可以在http://blog.smoothfriction.nl/archive/2009/08/13/lesscss-the-.net-edition.aspx阅读更多信息。它还允许继承类等...

您需要为此编写一个自定义HTTP处理程序,它是一个实现System.Web.IHttpHandler接口的类。你会在网上找到很多关于如何做到这一点的文章。

我试图玩Less for .NET

我们在过去使用了一个直线.aspx页面来实现我们的“动态”CSS。

我们拥有一套核心CSS的,但我们需要显示不同颜色的品牌网站的不同区域/帮助用户不同部分等区分

你会想要做的主要事情是理清响应编码:

private void Page_Load(object sender, System.EventArgs e) 
{ 
    Response.ContentType = "text/css"; 
} 

然后在代码前:

<% 
string strSiteArea = this.Page.Request.QueryString["sitearea"]; 
string strCustomStyles = this.Page.Request.QueryString["customcssstyles"]; 
string extralightcolour = ""; 
string lightcolour = ""; 
string normalcolour = ""; 
string darkcolour = ""; 
string customcolour = ""; 

switch (strSiteArea) 
{ 
    case "miscellaneous": 
    extralightcolour = "#F2F2F2";    
    lightcolour = "#E6E6E6"; 
    normalcolour = "#999999"; 
    darkcolour = "#666666";     
    break; 
    case "pressoffice": 
    extralightcolour = "#F0F4F7";    
    lightcolour = "#E2E9EE"; 
    normalcolour = "#6D8DA8"; 
    darkcolour = "#5C768D"; 
    break; 
    // etc 
} 
%> 
h1{color: <%= darkcolour %>;font-family: Arial;padding-left: 0;margin-left: 0;} 
h2{color: <%= darkcolour %>;font-family: Arial;font-size: 1.2em;font-weight: bold;margin-bottom: 0;padding-bottom: 0;} 
h3{color: <%= darkcolour %>;font-size: 1.1em;font-weight:normal;margin-bottom: 0;} 
h4{color: <%= darkcolour %>;margin-bottom: 0;font-size: 1.1em;font-weight:normal;font-style:italic;} 
.backgroundheading{margin: 0 0 0 0;background-color: <%= normalcolour %>;color: #FFF;font-weight: bold;font-family: Arial;font-size: 1.0em;text-align: left;padding: 3px 5px 3px 5px;} 
.backgroundheadinglight{margin: 0 0 0 0;background-color: <%= lightcolour %>;color: #000;font-weight: bold;font-family: Arial;font-size: 1.0em;text-align: left;padding: 3px 5px 3px 5px;} 
.backgroundheadingdark{margin: 0 0 0 0;background-color: <%= darkcolour %>;color: #FFF;font-weight: bold;font-family: Arial;font-size: 1.0em;text-align: left;padding: 3px 5px 3px 5px;} 
.background{margin: 0 0 0 0;background-color: <%= normalcolour %>;text-align: left;padding: 3px 5px 1px 5px;} 
.backgroundlight{margin: 0 0 0 0;background-color: <%= lightcolour %>;text-align: left;padding: 3px 5px 1px 5px;} 
.backgrounddark{margin: 0 0 0 0;background-color: <%= darkcolour %>;text-align:left;padding: 3px 5px 1px 5px;} 
.backgroundcolorextralight{background-color: <%= extralightcolour %>;} 

,然后调用CSS的网页,例如:

<link rel="stylesheet" href="/CSS/GenerateCss.aspx?siteArea=pressoffice" /> 

这给了我们力量,有许多使用一套统一的CSS样式不同的配色方案,并根据传入的查询字符串容易更改的页面。