2012-09-12 32 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”...一样简单... –

相关问题