Webページの特定の部分だけを印刷したい(ページ全体ではない)。JSFでこれをどのように達成できますか?
2 に答える
これは通常、CSSで。を使用して制御されdisplay: none|block
ます。CSSメディアルールを確認してください。
たとえば@media print {}
、デフォルトのCSSファイル内のように:
@media print {
#header, #footer, #menu {
display: none;
}
}
header
(上記の例では、IDを持つHTML要素を非表示にfooter
します。 menu
)
または、汎用スタイルクラスを介して:
@media screen {
.printonly {
display: none;
}
}
@media print {
.noprint {
display: none;
}
.printonly {
display: block;
}
}
styleClass="noprint"
次に、印刷から非表示にしたいものと、印刷のみで表示したいものに追加しstyleClass="printonly"
ます。
印刷固有のCSSを独自のスタイルシートファイルに入れて、以下を使用して<link media="print">
、または次のように参照することもできます。<h:outputStylesheet media="print">
<link rel="stylesheet" href="#{request.contextPath}/css/print.css" media="print" />
<!-- Or -->
<link rel="stylesheet" href="#{resource['css/print.css']}" media="print" />
<!-- Or -->
<h:outputStylesheet name="css/print.css" media="print" />
#header, #footer, #menu {
display: none;
}
属性はJSF2.1で<h:outputStylesheet media>
のみ追加されたため、JSF 2.0を使用している場合は、少なくとも2.1にアップグレードすることを検討してください(Webアプリ自体のコードや構成を変更せずに100%互換性がある必要があります)。それ以外の場合は、単純なHTML<link>
アプローチを選択してください。
これは、メディアタイプを指定することにより、純粋なCSSを介して実行できます:http ://www.w3.org/TR/CSS2/media.html