我只想打印网页的某个部分(而不是整个页面)。我怎样才能在 JSF 中实现这一点?
问问题
9004 次
2 回答
14
这通常由带有display: none|block
. 检查CSS 媒体规则。
例如,@media print {}
在默认 CSS 文件中:
@media print {
#header, #footer, #menu {
display: none;
}
}
header
(上面的例子将隐藏带有 ID和footer
的HTML 元素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;
}
请注意,该<h:outputStylesheet media>
属性仅在 JSF 2.1 中添加,因此如果您仍在使用 JSF 2.0,请考虑升级到至少 2.1(应该 100% 兼容,无需在 webapp 本身中进行任何代码和配置更改)。否则,只需使用纯 HTML<link>
方法。
于 2011-11-23T19:57:39.613 回答
0
这可以通过指定媒体类型通过纯 CSS 完成:http: //www.w3.org/TR/CSS2/media.html
于 2011-11-23T19:58:20.983 回答