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

固定300px宽度容器内溢出首行的子DIV如何隐藏并加CSS省略号

实现方案

核心思路

用flex不换行布局配合溢出隐藏规则,通过伪元素实现子项分隔符和末尾省略号,适配主流现代浏览器,完全保留你原有的HTML结构。

完整实现代码

<!-- HTML结构和你提供的一致,仅添加class方便绑定样式 -->
<div class="outer-container">
    <div class="inner-item">First Div</div>
    <div class="inner-item">Second Div</div>
    <div class="inner-item">Third Div</div>
    <div class="inner-item">Fourth Div</div>
    <div class="inner-item">Fifth Div</div>
</div>

<style>
.outer-container {
  width: 300px;
  display: flex;
  flex-wrap: nowrap; /* 强制子元素不换行 */
  overflow: hidden; /* 直接隐藏超出容器的所有子元素 */
  align-items: center;
  position: relative;
  background: #ffffff; /* 和你实际使用的父容器背景色保持一致即可 */
  padding-right: 20px; /* 预留省略号的显示空间 */
}
.inner-item {
  flex-shrink: 0; /* 禁止子元素被自动压缩宽度 */
  white-space: nowrap; /* 子元素内部文本不换行 */
}
/* 给非第一个子元素前面添加分隔符 */
.inner-item + .inner-item::before {
  content: " | ";
  margin: 0 4px;
}
/* 末尾固定显示省略号 */
.outer-container::after {
  content: "...";
  position: absolute;
  right: 0;
  padding-left: 4px;
  background: inherit; /* 继承父元素背景,遮挡末尾溢出的内容 */
}
</style>

兼容调整说明

如果需要兼容极低版本不支持flex的浏览器,可以做如下修改,其余样式保持不变:

  • 给.outer-container额外添加white-space: nowrap;属性
  • 给.inner-item额外添加display: inline-block;属性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 22:06:00