3

我正在尝试使用<p:media>(Primefaces 3.5) 来显示 PDF 内容并且无法控制 p:media 的高度。我希望媒体元素调整大小,以便在用户调整浏览器窗口大小时填充可用空间。我能够将标签上的宽度属性设置为 100%,并且媒体元素会适当地调整大小。但是,将height属性设置为100%(我要填满容器)那么height就坚决卡在150px(而且一直是150px)。

以下代码大小可填充可用宽度但不填充高度。

<p:media  id="theDoc" player="pdf" value="#{userBean.streamedDocument}" height="100%" width="100%">
    <h:outputText value="No renderer available..." />
</p:media>

如果我指定要以 px 表示的高度,那么高度会受到尊重,但当然不会随着浏览器的更改而调整大小......

我尝试直接在元素上使用 CSS 样式,并在结果<div>/<object>层次结构上,但似乎没有任何东西允许浏览器更改显示的 pdf 的高度。

另外,尝试<p:resizable>像这样使用

<p:media id="theDoc" player="pdf" value="#{userBean.streamedDocument}" height="100%" width="100%">
    <h:outputText value="No renderer available..." />
</p:media>
<p:resizable for="theDoc"/>

也没有效果。展示说 resizable 为任何 JSF 组件提供了可调整大小的行为,所以我认为它应该可以工作(我真正想要的是 p:media 元素调整大小以填充其父元素的 100%。)...

这似乎在所有浏览器中都是相同的。我已经搜索过,但无法找到任何可能影响此行为的 pdf 播放器参数文档。(事实上​​,我根本找不到 pdf 播放器的任何参数。

谁能解决我做错了什么?

4

1 回答 1

2

如果您的<p:media>标签包含在<h:form>标签中,那么您需要添加一个样式属性:

<h:form style="height: 100%">

html您可能还需要在样式表中设置andbody标记的高度:

html, body {
    height: 100%;  
}
于 2015-07-01T13:21:35.123 回答