【问题标题】:JSF outputText overflowsJSF 输出文本溢出
【发布时间】:2013-03-31 13:43:40
【问题描述】:

我正在尝试使用以下代码在面板内显示状态 cmets:

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

似乎当 cmets 这么长时,面板上的文本溢出了。我调查了一下,发现h:outputText 正在生成一个跨度,并试图通过 CSS 解决这个问题:

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

给定一个固定的宽度和overflow-x:scroll 应该可以解决问题,但它的渲染范围更广,即使我将其设置为 100 像素,它也会将其渲染为 400 像素,而不会注意到!important

【问题讨论】:

  • 你试图准确获取输出文本区域,可能会被输出文本的父级捕获。
  • 我好像又忘了一件事:display:block 解决了这个问题。

标签: css jsf jsf-2 primefaces


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

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

在块格式化上下文中,框一个接一个地布置, 垂直,从包含块的顶部开始。垂直的 两个兄弟框之间的距离由“边距”确定 特性。块中相邻块框之间的垂直边距 格式化上下文崩溃。

在块格式化上下文中,每个框的左外边缘接触 包含块的左边缘(对于从右到左的格式,右 边缘接触)。即使有浮点数也是如此(尽管 由于浮动,框的内容区域可能会缩小)。

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

【讨论】:

  • 摆脱!important。它们在 style 属性中毫无意义。它们仅在外部 CSS 文件中的 CSS 样式定义中有用。他们的重点是防止style 属性中定义的 CSS 属性覆盖外部 CSS 文件中的样式定义。
  • @BalusC 感谢您提供更多信息。实际上,我已经问了一个新问题,它与这个问题here 相关。这个问题需要结束吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-11
  • 2022-01-22
  • 2014-05-22
  • 1970-01-01
  • 1970-01-01
  • 2014-10-28
相关资源
最近更新 更多