有没有办法仅使用 HTML/CSS 来隐藏基于特定值的数据单元格?

2024-01-16

例如我有这样的代码:

<table>
    <caption>Test</caption>
    <tr>
        <th>Values</th>
        <td>$100</td>
    </tr>
    <tr>
        <th>Initial value</th>
        <td class="results"></td>
    </tr>
</table>

有没有办法仅使用 HTML/CSS 隐藏等于 $0 的单元格? 假设我有一个名为 Fee 的变量,而不是 $0,它可以是各种值:$0、$20、$100 等。

例如:

<script>
    var fees = ["$0", "$20", "$100"];
    document.querySelector('.results').innerHTML = fees[1];
</script>

有没有办法检查它的值,如果发现它是 $0,我可以隐藏它吗?

我的CSS是:

table{
    border-width: 1px;
    border-style: solid;
    border-collapse: separate;
    width: 400px;
}

#test{
    empty-cells: show;
    margin-bottom: 20px;
}

tr, th, td{
    border-width:1px;
    border-style: solid;
}

.results {
    display: none;     // I want this to only display none when fees = $0
}

TL;DR:这是可能的。寻找我的答案中的最后一个解决方案,或查看此博客:

使用纯 css 进行条件格式设置 http://rpbouman.blogspot.nl/2015/04/using-css-attr-syntax-for-conditional.html

我假设您不想隐藏单元格,而只想隐藏它的值。隐藏单元格在表格中没有意义,因为它可能会改变布局,而且任何单元格边框等也会被隐藏 - 可能不是您想要的。

现在 CSS 没有任何基于元素文本内容的选择器。但它确实支持属性值选择器。因此,您可以将代码更改为:

<table>
    <caption>Test</caption>
    <tr>
        <th>Values</th>
        <td><input value="$100"/></td>
    </tr>
    <tr>
        <th>Initial value</th>
        <td><input value="$0"/></td>
    </tr>
</table>

并使用类似的规则

input[value="$0"] {
    display: none;
}

您甚至可以通过添加禁用属性来使输入的行为与输入不同,这样它们就不可编辑。

如果您不想使用输入元素,您可以考虑使用 span 并使用“data-value”属性,并尝试浏览器是否尊重这一点:

<table>
    <caption>Test</caption>
    <tr>
        <th>Values</th>
        <td><span data-value="$100">$100</span></td>
    </tr>
    <tr>
        <th>Initial value</th>
        <td ><span data-value="$0">$0</span></td>
    </tr>
</table>

情况是:

td > span[data-value="$0"] {
    display: none;
}

当然这样做的缺点是你必须添加两次值(一次作为文本内容,一次作为属性),并且你需要生成一个内部的 span 元素,感觉有点难看。

或者,您可以尝试添加包含该值的类属性并创建一个类选择器:

<table>
    <caption>Test</caption>
    <tr>
        <th>Values</th>
        <td ><span class="value100">$100</span></td>
    </tr>
    <tr>
        <th>Initial value</th>
        <td ><span class="value0">$0</span></td>
    </tr>
</table>

并且CSS将是:

td span.value0 {
    display: none;   
}

当然,缺点与之前的方法相同 - 您必须生成两次值,一次作为文本内容,一次作为类名,并且需要添加内部跨度。

编辑:美元字符在CSS类名中无效,所以我删除了它。

EDIT2:事实证明有一种方法可以做到这一点,而无需将值复制为文本和属性。作为奖励,事实证明,如果我们依赖于 :after 伪类,您也不需要内部跨度(因为隐藏的是该类,而不是单元格本身):

<table border="1">
    <caption>Test</caption>
    <tr>
        <th>Values</th>
        <td data-value="$100"></td>
    </tr>
    <tr>
        <th>Initial value</th>
        <td data-value="$0"></td>
    </tr>
</table>

使用这个CSS:

  td:after {
      content: attr(data-value);
  }

  td[data-value="$0"]:after {
      content: "";
  }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法仅使用 HTML/CSS 来隐藏基于特定值的数据单元格? 的相关文章

随机推荐

  • Pandas:查找包含列表的一列中的最大值

    我有一个像这样的数据框 fly frame day plcae 0 1 2 3 4 5 A 1 1 2 3 4 B 2 1 2 C 3 1 2 3 4 D 如果我想找到日期列中每个条目的最大值 例如 fly frame day plcae
  • 安卓:语音识别

    可能重复 但我没有找到下面问题的答案 这两天我一直在研究语音识别 但没有得到问题的答案 是否可以将语音识别作为服务来运行 我想实现这样的事情 尽管我的手机通过语音识别处于睡眠模式 但我需要拨打一个号码 当我在火车 公共汽车等地方时 语音识别
  • JavaScript Regex - 查找所有可能的匹配项,即使是在已捕获的匹配项中

    我正在尝试获得所有可能的匹配使用 JavaScript 的正则表达式从字符串中获取 看来我这样做的方法没有匹配已经匹配的字符串部分 变量 var string A1B1Y A1B2Y A1B3Y A1B4Z A1B5Y A1B6Y A1B7
  • 禁用索引 pandas 数据框

    如何删除或禁用 pandas Dataframe 中的索引 我正在从 python for dataanalysis 一书中学习 pandas 并且我已经知道我可以使用 dataframe drop 删除一列或一行 但我没有找到任何关于禁用
  • Mongodb - 当属性具有 Interface 返回类型时如何反序列化

    我试图避免在数据层和使用该层的客户端代码之间引入任何依赖关系 但在尝试使用 Mongo 执行此操作 使用 MongoRepository 时遇到了一些问题 MongoRepository 显示了您创建反映数据结构的类型并在需要时继承实体的示
  • Selenium:如何将浏览器设置为离线模式?

    我需要测试我的应用程序的一项功能 该功能设计为在离线模式下执行 在互联网连接恢复之前使用本地存储对数据进行排队 Selenium可以将浏览器设置为离线模式吗 您可以为 Firefox 创建新的浏览器配置文件 然后配置该配置文件以使用离线模式
  • IE9 是否支持 WebGL 和/或 WebSockets? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions IE9 是
  • 应用栏上的圆角底部

    我想制作一个圆底的应用栏 如下所示 我将如何实现这样的应用程序栏 我尝试阅读 CustomPainter 的文档 但我不认为这是正确的方法 在 Flutter 中 您可以使用 shape 属性在 AppBar 小部件中自定义形状 AppBa
  • 如何从 sqlalchemy jsonify 对象?

    我正在使用 Flask SQLAlchemy 和 javascript 我需要通过 AJAX 将查询结果以 json 格式传递给 javascript 但我不断收到此错误 raise TypeError repr o is not JSON
  • Maven 出现 Eclipse 错误“路径必须包含项目和资源名称”

    我最近开始将 Maven 与 Eclipse 一起使用 我已经设置了几个项目 并且我注意到 如果我尝试指定项目目录之外的构建目录 以覆盖目标 则在执行 更新项目 时会出现错误 更新 Maven 项目 遇到问题 期间发生内部错误 更新 MAv
  • SQLite更新查询Android

    该表包含 4 列 rowID word defintition group id 我想更改某一行的单词和定义 这是我的代码 word 是一个对象 其中存储了 word definition id 和 group id ContentValu
  • 在bat上运行带有删除文件的jar

    我想将文件拖放到 bat 文件上 删除它后 我想运行一个 jar 文件 并将删除的文件路径作为输入 如何才能使用相对路径运行 jar 文件 我的 bat 文件运行的目录是我的用户目录 而不是它所在的目录 goal cmd c java ja
  • 如何获取 Java 分析转储以在 Mac 上创建火焰图?

    我想从我的 Java 应用程序中收集堆栈跟踪来创建CPU 火焰图 http www brendangregg com FlameGraphs cpuflamegraphs html用于分析 这与这个问题非常相似 如何从每个示例中的分析器中获
  • 返回嵌套泛型表达式>

    错误消息是 找不到类型或命名空间名称 T public static Expression
  • 查找数组中具有下一个较低值的对象

    我需要使用权重值获取数组中下一个较低的对象 const data weight 1 size 2 5 weight 2 size 3 0 weight 4 size 3 5 weight 10 size 4 0 weight 20 size
  • c/c++函数的源代码

    我想看看不同 C C 函数 如 strcpy stcmp strstr 的实现 这将帮助我了解 c c 中良好的编码实践 你能告诉我在哪里可以找到它吗 Thanks 你可以查看一份副本glibc http www gnu org softw
  • 使用 Glide 在 RecyclerView 中加载图像时 UI 滞后且不稳定

    我有一个 RecyclerView 它使用 Glide 从 URL 加载图像 现在 使用分页从 Firebase 检索 URL 如下所示 问题是 当 MainActivity 包含以下代码和 recyclerview 首次初始化时 UI 中
  • 实体框架 - .Load() 出现问题

    我一直在关注这篇文章 http blogs msdn com b adonet archive 2011 01 31 using dbcontext in ef feature ctp5 part 6 loading lated entit
  • 想要使用 Python3 从互联网上读取文件的特定偏移量

    我想从 python 中的特定偏移量读取互联网上的文件 与普通文件处理程序 由 open 返回 一样 我们有一个eek api 从网络读取时有什么方法可以做到这一点 import urllib request g urllib reques
  • 有没有办法仅使用 HTML/CSS 来隐藏基于特定值的数据单元格?

    例如我有这样的代码 table caption Test caption tr th Values th td 100 td tr tr th Initial value th td class results td tr table 有没