在GitHub问题PanelGrid: No way to manage style or identifiers of panelgrid cells except for tabular mode #5840中,说可以这样做,但没有说如何做。
我想“隐藏”一些单元格。我已经使用p:row
和p:column
部分地解决了这个问题;但是这些组件在p:wizard
中不能很好地工作。所以我想知道是否有其他的方法可以做到这一点。现在,我只隐藏了单元格内容,但是我还想从生成的td
中删除填充和边框。
如果有人能告诉我如何在不使用p:row
和p:column
的情况下设置特定单元格的样式,我将非常感激。
编辑日期:2012年11月15日
下面是一些代码:
<p:panelGrid
columns="2"
columnClasses="xs-width-fit-content,xs-width-100"
styleClass="xs-width-100">
...
<h:panelGroup
id="otraPaginaPanelDetalleWritingLabelGroup"
style="#{usuario22.writingGridOtraPaginaVisible ? 'visibility: visible' : 'display: none'}">
...
</h:panelGroup>
<h:panelGroup
id="otraPaginaPanelDetalleWritingFieldGroup"
style="#{usuario22.writingGridOtraPaginaVisible ? 'visibility: visible' : 'display: none'}">
...
</h:panelGroup>
...
</p:panelGrid>
p:panelGrid
有2列,一列用于标签等,另一列用于输入字段等。每列包含一个h:panelGroup
。每对连续的panelGroup将是一个“行”;这样的“行”是使用 AJAX 动态显示和隐藏的。当“行”的panelGroups隐藏时,我想更改其包含的td
的样式,将填充和边框设置为0。
2条答案
按热度按时间x7rlezfr1#
您的问题归结为对empty单元格进行样式化。您可以使用
:empty
CSS pseudo-class来完成此操作。您希望覆盖面板单元格body .ui-panelgrid .ui-panelgrid-cell
的主题规则,因此您希望使用如下自定义CSS:如果要为包含特定内容的特定单元格设置样式,可以使用
:has
CSS pseudo-class来选择这些单元格。例如:第一次
另请参阅:
gab6jxml2#
按照碧玉的提示,我可以使用
:has()
和:not()
伪类来解决我的问题。首先,我更改了面板组。现在它们看起来如下所示:
然后,我将以下规则添加到样式表中:
最后一条规则适用于包含
xs-concealable-panel-group
类组件的单元格(td),该单元格不包含xs-visible-panel-group
类组件。这条规则可能看起来比实际需要的更复杂,但我使用了一个特殊的代码生成器,仅使用:has(.xs-invisible-panel-group)
是不够的。我在Chrome、Firefox、Edge和Opera上测试了这个解决方案。它在Firefox107.0上不起作用。它在其他版本上工作得很好。