当前位置: 首页 > 知识库问答 >
问题:

超文本标记语言-根据内容更改表格单元格颜色

曾光远
2023-03-14

我必须说我在这方面绝对是个新手。我正在编写一个带有表格的小xslt演示文件,我想根据内容更改单元格或行的背景色(两者都可以,但我更喜欢只更改单元格背景)。

示例:RATING="GOOD""MEDIUM""BAD";根据它的值,我希望背景是绿色、黄色或红色。

我当前的表格代码:

<table width="1000" border="0" cellspacing="0" cellpadding="0" class="table-fill">
    <thead>
        <tr>
            <th scope="col">NAME</th>
            <th scope="col">VALUE</th>
            <th scope="col">RATING</th>
            <th scope="col">DESCRIPTION</th>
        </tr>
    </thead>
    <tbody>
        <xsl:for-each select="test/criteria">
            <tr>
                <td><xsl:value-of select="@nom" /></td>
                <td><xsl:value-of select="value" /></td>
                <td><xsl:value-of select="rating" /></td>
                <td><xsl:value-of select="descr" /></td>
            </tr>
        </xsl:for-each>
    </tbody>
</table>

提前感谢您

--编辑——我的问题已由@Yaakov Ainspan回答,并由@Ruud解决,他为我提供了我所缺少的代码。

它不是“对于包含某些文本的元素是否有CSS选择器吗?”的副本,因为我不需要将元素与包含多个元素的字符串隔离开来,而只需要创建与单元格内容同名的类(在本例中是单个单词)

共有1个答案

饶德元
2023-03-14

如果只是这三个预定义值,则可以使用相同的名称将类添加到样式表中:

.GOOD {
    background-color: green;
}
.MEDIUM {
    background-color: yellow;
}
.BAD {
    background-color: red;
}

...并将 class 属性添加到以下任一行:

    <xsl:for-each select="test/criteria">
        <tr>
            <xsl:attribute name="class">
                <xsl:value-of select="rating" />
            </xsl:attribute>
            <td><xsl:value-of select="@nom" /></td>
            <td><xsl:value-of select="value" /></td>
            <td><xsl:value-of select="rating" /></td>
            <td><xsl:value-of select="descr" /></td>
        </tr>
    </xsl:for-each>

...或单元格:

    <xsl:for-each select="test/criteria">
        <tr>
            <td><xsl:value-of select="@nom" /></td>
            <td><xsl:value-of select="value" /></td>
            <td>
                <xsl:attribute name="class">
                    <xsl:value-of select="rating" />
                </xsl:attribute>
                <xsl:value-of select="rating" />
            </td>
            <td><xsl:value-of select="descr" /></td>
        </tr>
    </xsl:for-each>

编辑:为了更好的可读性,您还可以通过以下方式添加类:

    <xsl:for-each select="test/criteria">
        <tr>
            <td><xsl:value-of select="@nom" /></td>
            <td><xsl:value-of select="value" /></td>
            <td class="{rating}"><xsl:value-of select="rating" /></td>
            <td><xsl:value-of select="descr" /></td>
        </tr>
    </xsl:for-each>
 类似资料:
  • 在 Swift 中使用 ,有人可以帮助我根据标签、图片和描述自动更改单元格的高度吗? 我想随着标签文本的增加动态更改单元格大小。我已经在标签上应用了自动布局。

  • 问题内容: 我的站点读取一个XML文件,该文件包含数据表的信息(值)。我使用CSS设置表格样式,并且一切正常。 为了获得更好的用户体验,我想知道是否有可能根据其值动态更改每个单元格的背景颜色? 例如: 每个包含小于5的数字的单元格都有红色背景色; 每个大于等于“ 5”的单元格具有绿色背景色。 我对此的第一个解决方案是使用Javascript-但我想知道是否有办法仅使用CSS样式来解决此问题? 问题

  • 这里有一个非常基本的例子,我试图根据单元格中存在的特定字符串值来给特定的单元格着色。我输入打印报表,然后点击返回“绿色”,返回“橙色”,等等...点,但在运行时,我只得到灰色和白色交替的行颜色,没有我特定的单元格颜色。我使用的css是直接从《瓦丁之书》中提取的,我认为这很简单。也许我遗漏了一些小事。 单元格样式生成器代码: CSS: 当我查看浏览器中实际呈现的内容时,这是单元格的样子:

  • 问题内容: 我有一个由用户创建的单元格调用的表视图。每个单元都有文本视图。我想通过“文本视图”的内容更改单元格的高度。这是我尝试的: 问题答案: 绑定您与来自四面八方的使用边际约束。( 前置,顶部和底部的约束 ) 禁用textView滚动 在 viewDidLoad()中 添加以下内容。 这将使您的单元格大小根据您的textview内容大小。 看一下结果: 您无需编写 heightForRowAt

  • 我在细胞上有两个标签。如果标签只显示一行文本,那么单元格看起来很好。但是如果有更多的文本,并且如果标签上的行被包裹起来,那么标签/文本就会离开单元格。附加图像。 我当前的代码: 解决方案我试图修复它: 这就是解决方案的外观。如何根据单元格的内容更新单元格的高度?