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で省略できます。

どんな助けでも大歓迎です。

編集:

もう少し検索しましたが、属性「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 に答える