css - 如何在值为空或零时隐藏徽章

标签 css jsf primefaces

我想要我的 PrimeFaces p:badge当值为零或空时不可见。 以下将显示值为 0 的徽章:

<p:badge value="0">
  <p:avatar label="Badge"/>
</p:badge>

如果我使用空值,将显示一个空徽章:

<p:badge value="">
  <p:avatar label="Badge"/>
</p:badge>

使用 rendered 属性是不可取的,因为它还会隐藏徽章的内容(在本例中为 p:avatar):

<p:badge rendered="#{bean.value ne '0'}">
  <p:avatar label="Badge"/>
</p:badge>

最佳答案

PrimeFaces 10

查看使用空值时呈现的 HTML:

<div id="..." class="ui-overlay-badge">
  <span class="ui-badge ui-widget"></span>
  ...
</div>

您可以使用 :empty CSS 选择器简单地隐藏空元素。因此,您可以使用 CSS 隐藏空徽章,例如:

.ui-badge:empty { display: none; }

此 CSS 规则要求您使用空值才能隐藏徽章。 如果你想在值为 0 时隐藏徽章,你可以使用三元表达式将 0 映射为空:

<p:badge value="#{bean.value eq '0' ? '' : bean.value}">
  <p:avatar label="Badge"/>
</p:badge>

另见

PrimeFaces 11+

在 PrimeFaces 11 中,visible 属性是 introduced .它可以像这样使用:

<p:badge value="#{bean.value}" visible="#{not empty bean.value}">
  <p:avatar label="Badge"/>
</p:badge>

<p:badge value="#{bean.value}" visible="#{bean.value ne '0'}">
  <p:avatar label="Badge"/>
</p:badge>

关于css - 如何在值为空或零时隐藏徽章,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68693327/

相关文章:

html - 3 或 2 列布局取决于实际内容

css - 使用 CSS 创建垂直堆叠的缩略图

android - JSF 中的 HTTP 请求

html - 如何使用分页器位置切换页脚位置

jsf - 删除 PrimeFaces 数据表中的行

html - 复选框按钮需要多次点击

css - 有没有办法选择多个相邻的类?

java - 在 java 支持代码中使用资源包字符串?

maven - JSF 和 Richfaces/Primefaces - Maven - Netbeans 8.0.1 - Glassfish 4.1

jsf - 到达数据表列 JSF/PrimeFaces 中的 backingbean 方法