css - JSF/CSS 属性选择器

标签 css jsf css-selectors

我有一个包含两列的表格。当第二列的值包含特定值时,我想使用 CSS 为它设置不同的样式。

这是 View :

<h:dataTable id="tb_USER_DETAILS" border="1" var="userDtls"
    value="#{freqViewTable.freqDtlsTable}" columnClasses="keydata, occupieddata"
    style="width: 250px" styleClass="overalltable">
    <h:column id="frequency">
        <f:facet name="header">
            <h:outputText value="Frequency (Hz)" style="font-size:12pt" />
        </f:facet>
        <h:outputText value="#{userDtls.keyFrequency}" style="font-size: 12pt"/>
    </h:column>
    <h:column id="slot">
        <f:facet name="header">
            <h:outputText value="Slot" style="font-size:12pt" />
        </f:facet>
        <h:outputText id="slotdata" value="#{userDtls.occupiedFlag}" style="font-size: 12pt"/>
    </h:column>
</h:dataTable>

css文件是:

table {
   background : Blue ;
}

table.overalltable th {
    background : Yellow;
}

table.overalltable tr {
    background : White;
}

table.overalltable .keydata {
    background : Orange;
}

table.overalltable .occupieddata {
    background : YellowGreen;
}

目前 .occupieddataYellowGreen。当值为“已占用”时,我希望它是 Red。类似于以下内容:

table.overalltable .occupieddata[occupiedFlag='Occupied'] {
    background : Red;
}

或者像这样:

table.overalltable .occupieddata[slotdata='Occupied'] {
    background : Red;
}

我怎样才能做到这一点?我正在使用以下技术:

  • Java 1.6.0_22-b03
  • JSF 1.2
  • JSTL 1.2
  • Eclipse 3.6.0 (Helios)
  • Tomcat 6.0.28(也需要在 Weblogic 上运行)
  • IE 7.0.5730.13
  • 火狐:3.6.12

最佳答案

这行不通。你的<h:outputText>呈现 HTML <span>元素,因为您指定了 idstyle其上的属性。如果你检查生成的 HTML 代码,它应该是这样的

<td class="occupieddata"><span id="slotdata" style="font-size: 12pt">Occupied</span></td>

现在,您可以按如下方式向其添加另一个样式类:

<h:outputText id="slotdata" value="#{userDtls.occupiedFlag}"
    style="font-size: 12pt" styleClass="#{userDtls.occupiedFlag}" />

所以它最终是这样的:

<td class="occupieddata"><span id="slotdata" style="font-size: 12pt" class="Occupied">Occupied</span></td>

然后您可以将其设置为红色,如下所示:

table.overalltable .occupieddata .Occupied {
    background : Red;
}

顺便说一下,考虑移动所有 style="font-size:12pt将标记输出到样式表中,在它所属的位置。

关于css - JSF/CSS 属性选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7032418/

相关文章:

ajax - JSF/Primefaces AJAX请求真的是异步的吗?

ide - 将 Netbeans 中现有的 Visual Web 项目迁移到哪里?

jquery - jQuery 有类似 :any or :matches pseudo-class? 的东西吗

css - 是否有 CSS 父级选择器?

html - 访问状态后按钮的背景颜色问题

html - CSS 文件未在 Firefox 中加载/显示

html - 两列自动高度背景颜色

css - HTML5/CSS : aligning labels to the left of list items

jsf - 有条件渲染 p :commandLinks

html - 在网站上使用 Century Gothic 或其他字体