2009-08-25 47 views
0

我知道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

回答

0

您需要爲此編寫一個自定義HTTP處理程序,它是一個實現System.Web.IHttpHandler接口的類。你會在網上找到很多關於如何做到這一點的文章。

1

我們在過去使用了一個直線.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樣式不同的配色方案,並根據傳入的查詢字符串容易更改的頁面。