1

私のサイトはasp.net4/vbにあります。上部にロゴと関連情報のみを含み、ナビゲーションバーなどの不要なものを省略した、プリンターに適したページを作成するための最良の方法を見つけようとしています。Click-to-Printアイコンがあり、すべてのブラウザで正常に機能しますが、必ずしもプリンタに適した状態で印刷されるとは限りません。

このサイトでprint.cssスタイルシートの作成について読んだことがありますが、スタイルシートをどのようにコーディングするか、または省略したいものにdiv属性を割り当てる必要があるかどうかがわかりません。古い投稿。ナビゲーションリンクなどを省略することをお勧めしますか?もしそうなら、これを行うための最良の方法は何ですか?ご協力ありがとうございました!

4

2 に答える 2

2

CSS@mediaタイプを使用できます。

<p> this should be part of the printed page </p>

<div id="navigation_bar_that_should_not_be printed" class="noprint">.....</div>

上記の単純なスタイルシートは次のようになります。

@media screen
{
   /* whatever styles you have for display */
}

@media print
{
   .noprint { display: none; }
}

上記の場合、<div>withはclass="noprint"通常どおり画面に表示されますが、印刷されません。


アップデート:

の「C」はCSS「カスケード」を表します。これは、「最後の」または最も近い命令が優先されることを意味します。<span class="bodycontent"...最後または最も近い)がdivをオーバーライドしているとしか想定できません。

ASP.NetコントロールにはCssClassプロパティがあり、それを定義する方法です。

<asp:HyperLink NavigateUrl="http://www.google.com" runat="server" CssClass="noprint" Text="foo" />

ASP.Netタグに(CssClassを使用する代わりに)直接入力することもできclass="noprint"ます-VSは文句を言うかもしれませんが、問題ないはずです:

<asp:HyperLink NavigateUrl="http://www.google.com" runat="server" class="noprint" Text="foo" />
于 2012-09-23T03:07:56.670 に答える
1

印刷時に表示したくないものをラップするために、実際に要素を追加する必要はありません。print_hide印刷スタイルシートを作成する最良の方法は、ページの印刷時に非表示にする要素にクラス(おそらくそれと呼ばれる)を適用することです。例えば:

<div>Text</div>
<img class='print_hide' src='some_huge_image.png'/>

print.cssスタイルシートでは、次のようにします。

.print_hide {
    display: none;
}

headスタイルシートを適用するには、これを:に追加します。

<link rel="stylesheet" type="text/css" media="print" href="print.css">

div引き続き印刷されますが、画像は印刷されません。

もちろん、これは、背景画像の削除、色、フォントの変更など、必要な他のスタイルの変更に追加されます。

そのクラスを印刷時に非表示にするものに追加することは、既存のコードへの比較的最小限の変更です。

もう1つのオプションは、すべてのページのプリンター対応バージョンを個別に作成することです。ページが非常に複雑な場合は、これがその方法である可能性があります。そうは言っても、print.cssの利点は(作業が少なくなることに加えて)、もちろん、ユーザーが明示的に選択する必要がないことですPrinter friendly version

于 2012-09-23T02:12:49.877 に答える