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



代码很简单:

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"似乎就可以了。

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

由于特殊性,在body元素上添加背景色作为样式属性内联(按照您的方式)会覆盖打印样式表。(关于CSS特异性的更多值得阅读的内容请点击此处。)

为了解决这个问题,你可以:

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

    body {
        background-color: transparent !important;
    }
    

相关内容

  • 没有找到相关文章

最新更新