2013-04-09 41 views
3

我想,以显示与下面的代码在面板内部情况的意见:JSF的outputText溢出

<p:panel> 
    <ui:repeat var="Comment" value="#{Status.commentList}"> 
     <h:outputText value="#{Comment.Text}"/> 
    </ui:repeat> 
</p:panel> 

看来当评论有这么长,文字是从面板四溢。我调查了一下,发现了h:outputText正在产生的跨度,并试图通过CSS来解决这个问题:

<h:outputText value="#{Comment.Text}" 
    style="width: 100px!important; overflow-x: scroll!important;"/> 

给出一个固定的宽度和overflow-x:scroll应该做的伎俩,但它呈现跨度更广,甚至我已经设置它为100像素,它将其渲染为400像素,不会注意到!important

+0

您试图获取确切的输出文本区域,可能会被outputtext的父项捕获。 – 2013-04-09 08:35:40

+1

看来我忘了一件事:'display:block'解决了问题。 – 2013-04-09 08:38:00

回答

1
<h:outputText value="#{Comment.Text}" 
    style="width: 100px; overflow-x: scroll; display:block;"/> 

是正确的方法。 W3说约display:block;

在一个块格式化上下文中,从一个包含块的顶部开始,一个接一个地垂直布置框, 。 2个兄弟箱之间的垂直距离 由“余量” 性质决定。格式化上下文折叠块 中相邻块框之间的垂直边距。

在块格式化上下文中,每个框的左外边缘触摸包含块的左边缘 (用于从右到左格式化,右边的 边缘触摸)。即使在漂浮物存在的情况下也是如此(尽管由于漂浮物, 框的内容区域可能会缩小)。

这证明了为什么我的文本溢出需要作为上下文值进行处理。

+3

摆脱'!重要'。它们在'style'属性里没有完全意义。它们仅用于外部CSS文件中的CSS样式定义。他们的要点是防止'style'属性中定义的CSS属性覆盖外部CSS文件中的样式定义。 – BalusC 2013-04-09 11:19:58

+0

@BalusC感谢您提供更多信息。其实我已经问过一个更深的问题,并且与这个问题相关[这里](http://stackoverflow.com/q/15901896/1659451)。这个问题是否需要关闭? – 2013-04-09 12:30:28