2012-09-12 38 views
0

當代碼的很簡單忽視:我有一個風格設定編程,我希望打印

page.aspx

<body id ="PageBody" runat ="server"> 

page.aspx.cs

if ($foo == "foo") 
{ 
    PageBody.Style.Add("background-color", "green"); 
} 

我會喜歡在打印頁面時完全忽略背景色(由於各種原因,PC打印將在其打印設置中打開背景並且不能禁用)

我沒有在C#中使用過多的CSS,所以也許有一種方法可以將主體設置爲有條件地使用特定的CSS對象ID?如果是這種情況,我可以在style.css中設置BG顏色,並將其保留在print.css中。

任何幫助,非常感謝。

編輯:

採取了一些更尋找,但添加屬性「下課」,似乎這樣的伎倆。

當滿足條件時,我只是打電話給我的綠色背景,當不符合條件時調用標準樣式。兩者在打印樣式表中都沒有背景色。

+2

查找「CSS媒體類型」http://www.w3.org/TR/CSS2/media.html是一個很好的開始參考。 – asawyer

+0

我很熟悉在樣式表中設置媒體類型。我要做的是基本上覆蓋我的代碼,在頁面打印的情況下。 (「background-color」,「green」);使用 ; 完全覆蓋樣式表。 –

+0

如果您熟悉CSS媒體類型,那麼我不確定問題是什麼。只需將普通顯示器的css設置爲綠色背景樣式表,然後在打印樣式表中清除。 – asawyer

回答

1

body元素的背景顏色作爲樣式屬性inline(您正在操作的方式)將由於特殊性而覆蓋打印樣式表。 (Further worthwhile reading on CSS specificity is here

要解決這個問題,你可以:

  1. 沒有設置背景色爲內嵌式的(或許通過添加CSS類到body元素,而不是和造型,從CSS)或
  2. 在打印樣式表中定義背景樣式後添加!important,即在print.css做:

    body { 
        background-color: transparent !important; 
    } 
    
+0

這就是我想要的,但是在尋找要添加的屬性時,我沒有想到它像Attributes.Add(「class」...一樣簡單... –

相關問題