我有一个以编程方式设置的样式,我希望在打印时忽略它

时间:2012-09-12 20:25:19

标签: c# asp.net styles

代码很简单:

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中。

非常感谢任何帮助。

编辑:

进行了一些搜索,但添加“class”属性似乎可以解决问题。

我只是在符合条件时调用我的绿色背景,并在没有时调用标准样式。两者在打印样式表中都没有背景颜色。

1 个答案:

答案 0 :(得分:1)

body元素上添加背景颜色作为样式属性内联(您正在做的方式)会因特异性而覆盖打印样式表。 (Further worthwhile reading on CSS specificity is here。)

要解决这个问题,您可以:

  1. 未将背景颜色设置为内联样式(可能通过向body元素添加CSS类而不是从CSS设置样式)或
  2. 在打印样式表中定义的背景样式后添加!important,即在print.css中执行:

    body {
        background-color: transparent !important;
    }