You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在空间不足时隐藏JIRA时间轴中的状态信息?

解决方案:利用CSS容器查询动态隐藏状态元素

要实现空间不足时隐藏工单状态的需求,最适配你场景的方法是使用CSS容器查询——因为你的.accordion宽度由grid列模板动态控制,容器查询可以根据父容器的实际宽度触发样式变化。具体步骤如下:


1. 优化HTML结构

给状态元素添加专属类名,同时修正拼写错误(将className改为标准HTML属性class):

<div class="accordion">
  <div class="accordion-content">
    <div class="timeline-bar">
      <div>JIRA-1234</div>
      <div><img alt="Url Icon" width="25" src="#url-icon"></div>
      <div class="epic-summary">EPIC: This is some description</div>
      <!-- 添加类名用于CSS定位 -->
      <div class="ticket-status">In progress</div>
    </div>
  </div>
  <div class="accordion-toggle">
    <img src="#toggle-icon" width="25" height="25">
  </div>
</div>

2. 配置CSS规则

开启容器查询,并设置宽度阈值控制状态元素的显示/隐藏,同时优化flex布局的优先级:

.accordion {
  border: 1px solid black;
  width: 600px; /* 示例宽度,实际由grid列模板控制 */
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
}

.accordion-content {
  flex: 1 1 auto;
}

.epic-summary {
  flex: 1 1 auto;
  /* 空间不足时先截断描述文本,保留关键信息 */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.timeline-bar {
  border-right: 1px solid black;
  display: flex;
  align-items: center;
  /* 开启容器查询,基于容器的行内尺寸 */
  container-type: inline-size;
}

.timeline-bar>div {
  padding: 0 5px;
  /* 固定尺寸元素禁止被压缩 */
  flex-shrink: 0;
}

/* 允许描述文本被压缩 */
.timeline-bar .epic-summary {
  flex-shrink: 1;
}

/* 容器查询:当timeline-bar宽度小于阈值时隐藏状态 */
@container (max-width: 400px) {
  .ticket-status {
    display: none;
  }
}

核心逻辑说明

  • 容器查询适配动态宽度:通过container-type: inline-size让.timeline-bar成为查询上下文,完全适配grid列模板的动态宽度,比视口媒体查询更精准。
  • flex优先级控制:JIRA编号、图标等固定尺寸元素设置flex-shrink:0避免被压缩;描述文本设为可压缩,空间不足时先截断文本,最后再隐藏状态元素,保证关键信息优先展示。
  • 阈值自定义:你可以根据实际内容调整@container中的宽度阈值(比如380px、420px),找到最适合的触发临界点。

如果需要兼容不支持容器查询的旧浏览器,可以用视口媒体查询作为降级方案,但无法精准匹配grid布局的动态宽度。


内容的提问来源于stack exchange,提问作者Jake Cano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 20:45:58