【发布时间】:2023-03-24 10:48:01
【问题描述】:
代码很简单:
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”似乎可以解决问题。
我只是在满足条件时调用我的绿色背景,而在不满足条件时调用标准样式。两者在打印样式表中都没有背景颜色。
【问题讨论】:
-
查找“CSS 媒体类型”w3.org/TR/CSS2/media.html 是一个很好的入门参考。
-
我熟悉在样式表中设置媒体类型。我要做的基本上是在页面被打印的情况下覆盖我的代码。使用 style.add("background-color", "green");完全覆盖样式表。
-
如果您熟悉 css 媒体类型,那么我不确定问题是什么。只需在正常显示 css 上设置绿色背景样式表,然后在打印样式表上清除它。
-
样式表根据我最初发布的代码被覆盖。当满足将背景颜色更改为绿色的条件时,它会完全忽略样式表,包括屏幕和打印。
-
那么不要在代码中覆盖样式,向应用样式的元素添加一个类。然后在打印 css 样式表中覆盖该样式。