0

代码很简单:

页面.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”似乎可以解决问题。

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

4

1 回答 1

1

由于特殊性,在元素上添加背景颜色body作为样式属性内联(您正在做的方式)会覆盖打印样式表。(关于 CSS 特性的进一步值得一读的内容在这里。)

要解决此问题,您可以:

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

    body {
        background-color: transparent !important;
    }
    
于 2012-09-12T22:13:54.327 回答