如何用省略号隐藏多余的 div?

2024-03-18

我有一个标签输入字段,我需要显示尽可能多的内容,适合它周围的假“输入”div,如下所示:

<div class="btn btn-secondary">
  <span class="tag">Tag 1</span>
  <span class="tag">Tag 2</span>
  <span class="tag">Tag 3</span>
  <span class="tag">Tag 4</span>
  <input>
</div>

(我在那里以编程方式添加标签,一个 Angular 组件)。我的带有按钮类的外部 div 假装是一个输入,在内部我显示当前标签(样式)以及它们右侧的实际输入。 目标是显示一些尽可能多的标签,然后为输入留出一些空间,如下所示:

________________________________
| tag1  tag2  tag3  ... _INPUT_ |
---------------------------------

标签已设计样式(并带有 X 按钮)。因此,如果我删除一些标签,我需要删除省略号(...),如果我添加更多,它们将不会显示(它们在工具提示中)。

输入具有最小宽度,但如果没有任何(或足够的)标签,它应该填充空间。所以,tag tag inpuuuuuuuuuuuuut一直到右边界。如果我们删除一个标签,输入就会填满空间,如果我们添加一个标签,输入就会缩小(直到 minWidth)。

这样做的常识性方法是什么?我想我需要让每个标签计算并报告它的宽度,然后让包装器 div 选择多少个标签适合并隐藏其他标签,并在需要时添加省略号标签。有没有更简单的方法(需要 IE11 最低支持)?


这里有一个crazy使用一些弹性和定位的想法(您可能需要根据自己的情况调整一些值)

.btn {
  width: 310px;
  border: 1px solid;
  display: flex;
  height: 20px;
  margin-bottom: 10px;
}

input {
  width: 170px;
}

.btn > div {
  flex: 1;
  position: relative;
  height: 100%;
}

.btn > div > div {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  overflow: hidden;
}

.btn > div > div:after {
  content: "...";
  position: absolute;
  right: 2px;
  bottom: 5px;
}

.tag {
  background: #fff;
  position: relative;
  z-index: 2;
}
<div class="btn">
  <div>
    <div>
      <span class="tag">Tag 1</span>
      <span class="tag">Tag 2</span>
      <span class="tag">Tag 3</span>
    </div>
  </div>
  <input>
</div>
<div class="btn">
  <div>
    <div>
      <span class="tag">Tag 1</span>
      <span class="tag">Tag 2</span>
      <span class="tag">Tag 3</span>
      <span class="tag">Tag 4</span>
      <span class="tag">Tag 5</span>
    </div>
  </div>
  <input>
</div>
<div class="btn">
  <div>
    <div>
      <span class="tag">Tag 1</span>
      <span class="tag">Tag 2</span>
    </div>
  </div>
  <input>
</div>
<div class="btn">
  <div>
    <div>
      <span class="tag">Tag 1</span>
      <span class="tag">Tag 2</span>
      <span class="tag">Tag 3</span>
      <span class="tag">Tag 4</span>
      <span class="tag">Tag 5</span>
      <span class="tag">Tag 6</span>
      <span class="tag">Tag 7</span>
    </div>
  </div>
  <input>
</div>

UPDATE

现在,如果没有足够的标签,输入将向左拉伸:

.btn {
  width: 310px;
  border: 1px solid;
  display: flex;
  height: 20px;
  margin-bottom: 10px;
  overflow: hidden;
}

input {
  flex: 1;
  min-width: 170px;
}

.btn > div {
  position: relative;
  height: 100%;
  overflow: hidden;
}

.btn > div:after {
  content: "...";
  position: absolute;
  right: 2px;
  bottom: 5px;
}

.tag {
  background: #fff;
  position: relative;
  z-index: 2;
}
<div class="btn">
  <div>
    <span class="tag">Tag 1</span>
    <span class="tag">Tag 2</span>
    <span class="tag">Tag 3</span>
  </div>
  <input>
</div>
<div class="btn">
  <div>
    <span class="tag">Tag 1</span>
    <span class="tag">Tag 2</span>
    <span class="tag">Tag 3</span>
    <span class="tag">Tag 4</span>
    <span class="tag">Tag 5</span>
  </div>
  <input>
</div>
<div class="btn">
  <div>
    <span class="tag">Tag 1</span>
    <span class="tag">Tag 2</span>
  </div>
  <input>
</div>
<div class="btn">
  <div>
    <span class="tag">Tag 1</span>
    <span class="tag">Tag 2</span>
    <span class="tag">Tag 3</span>
    <span class="tag">Tag 4</span>
    <span class="tag">Tag 5</span>
    <span class="tag">Tag 6</span>
    <span class="tag">Tag 7</span>
  </div>
  <input>
</div>
<div class="btn">
  <div>
    <span class="tag">Tag 1</span>
  </div>
  <input>
</div>
<div class="btn">
  <div>
  </div>
  <input>
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何用省略号隐藏多余的 div? 的相关文章

  • 使用模态表单 ajax 超出 HTMLFormElement.toString 的最大调用堆栈大小

    我想使用模态窗口中的 ajax 请求提交表单 单击此链接可打开该模式 a class btn btn primary i class fa fa edit i Write a review a 模态窗口 div class modal fa
  • 在 MVC Razor 中的 C# 和 Javascript 之间共享常量

    我想在服务器上的 C 和客户端上的 Javascript 中都使用字符串常量 我将常量封装在 C 类中 namespace MyModel public static class Constants public const string
  • 如何记录返回的事件发射器

    如何记录所发出的事件stream返回于MyFunc 与 JSDoc MyFunc description param Object opts description return Stream description function My
  • 如何使用 jQuery 向表中添加新行,并为其分配递增的 id

    我有一个现有的 HTML 表格 它是用户输入 GPS 点的表单的一部分 用户还可以选择上传 GPS 数据点 我想要一个用户可以按下的按钮 其中一些 Javascript 会向表中添加一个或多个新行 但新行必须继续增加表中使用的名称和 id
  • 如何在 WordPress HTML 中包含“onclick”对象

    我正在尝试将 onclick 对象添加到触发事件的单站点 即而不是多站点 WordPress 中的页面 代码是 a href Send a voice message a 当尝试保存代码时 WordPress 会删除 onclick 对象
  • 如何改变HTML5视频的播放速度?

    如何更改 HTML5 中的视频播放速度 我查过视频标签的属性 https www w3schools com html html5 video asp在 w3school 但无法做到这一点 根据这个网站 http www chipwreck
  • HTML colorpicker 发生变化时如何获取新值?

    我正在开发一个需要更改 HTML 颜色的网络应用程序canvas基于的价值观colorpicker 我有一个colorpicker在我需要获取的 HTML 中value从每次更新开始
  • 如何滚动到div内的元素?

    我有一个滚动的div我想在点击它时发生一个事件 它会强制执行此操作div滚动以查看内部元素 我写的JavasCript是这样的 document getElementById chr scrollIntoView true 但这会在滚动时滚
  • Flux + React.js - 操作中的回调是好还是坏?

    让我解释一下我最近遇到的问题 我有 React js Flux 驱动的应用程序 有一个列表显示文章数量 注意 应用程序中有多个不同的列表 和文章详情查看在里面 但每个列表只有一个 API 端点 它返回文章数组 为了显示我需要的详细信息fin
  • 使水平滚动条始终可见,即使底部不在视图中

    我将用一个片段来开始这个问题 该片段几乎显示了我想要完成的任务 wrapper overflow hidden display flex sidebar min width 200px background 333 color FFF co
  • 如何使 jQuery 向上动画

    我有一些 jquery 运行得相当好 但是当我将鼠标悬停在有问题的元素上时 底部向下扩展 这并不意外 但不是所需的效果 我希望元素的底部保持静止 而元素的顶部向上扩展 如果您想查看我目前拥有的内容 您可以导航至http demo ivann
  • 一旦 webapp 添加到主屏幕,是否可以强制 iphone/ipod 更新 apple-touch-icon?

    我使用 safari 的所有推荐链接和元标记创建了一个网络应用程序 例如
  • 从多维无穷大数组中删除数组元素

    我想删除一个特定元素 例如 我想删除元素id 76在下面的数组中 而且 数组可以无限地组合在一起 这里的问题是我无法刷新页面 因为我使用 Vue js 进行即时操作 如果我能做到这一点 我的下一个问题可能是如何在我现在想要的地方添加一个元素
  • 如何获取使用 .map 渲染的第一个元素的 ref?

    我需要在几行中显示视频 卡片 的缩略图 并重点关注第一个缩略图 我使用嵌套地图进行了显示 该代码基本上迭代视频数组并返回多行视频 我们如何关注第一个渲染的元素 我认为我们需要获得第一个要聚焦的元素的引用 但是我们如何在这里设置 ref 并在
  • MYSQL 按喜欢/不喜欢和受欢迎程度排序

    我有评论表 其中包括喜欢和不喜欢的内容 现在我在正确的顺序上遇到了问题 实际上 我的系统在顶部显示了最多点赞的评论 我正在 youtube 上寻找类似系统的东西 这意味着 100like 100dislikes 的评论的顺序高于 1 1 我
  • CSS - 第一个没有特定类别的孩子

    是否可以编写一个 CSS 规则来选择没有特定类的元素的第一个子元素 example div span class common class ignore span span class common class ignore span sp
  • span 和 iframe 正文中的宽度(以像素为单位)

    我需要知道 a 的宽度 nbsp 以像素为单位 以及是否取决于字体大小 另外 页面中不同元素的情况是否有所不同 还有 就是 nbsp 与常规不同 目的 nbsp 不间断空格 位于正常空格之上是为了防止单词之间出现换行 您可以使用多个 nbs
  • Express.js Passport认证自动失败跳过策略

    UPDATE 我已将代码从护照本地注册内部移至单独的处理程序 并且运行良好 问题在于 Passport 和本地注册的使用 但我不知道为什么 我使用 Node js Express Passport 进行身份验证和注册设置 这是以前使用过的标
  • 如何调试 Gulp 任务?

    如何调试我的中定义的 gulp 任务gulpfile js使用诸如 Google Chrome 调试器之类的调试器逐行单步执行任务的代码 对于 Node js 6 3 版本 您可以使用 inspect flag https nodejs o
  • 在 javascript 中使用 xPath 解析具有默认命名空间的 XML

    我需要创建一个 XML xPath 解析器 所有解析都必须在客户端进行 使用 JavaScript 我创建了一个 javascript 来执行此操作 在默认名称空间发挥作用之前 一切看起来都正常 我根本无法查询具有默认命名空间的 XML 我

随机推荐

  • SQL 约束/触发器 - 是否可以编写一个约束来检查“插入记录时它必须包含两个字段之一”?

    是否可以对输入的记录设置约束 触发器 以检查用户是否至少输入了三个字段之一 所有字段都可以为空 例如 我有一个数据库用于跟踪其他软件中的错误和新功能 当发现错误时 会创建一个功能记录 该记录可以具有三个外键 discoveredID fix
  • 如何匹配字符串中的第一个单词?

    我想匹配这个词 St or St or st or st 但只能作为字符串的第一个单词 例如 St Mary Church Church St 应该首先找到 St st Mary Church Church St 应该只找到 st st M
  • 为什么这个隐式函数没有被应用?

    尝试 Alexey Romanov 中提出的 TupleN 的隐式转换如何在元组之间应用隐式转换 https stackoverflow com questions 23911151 how to apply implicit conver
  • 跨不同项目设置发布/订阅订阅?

    在我的 GCP 项目 项目A 我创建了一个 Pub sub 主题 topicA 并且在此发布 订阅主题中发布的消息需要在其他 GCP 项目 项目B 通过订阅 订阅B 推荐的设置方式是什么订阅B Define 订阅B在项目 A 中 并使用适当
  • 双显示器中的 Delphi XE Form 和 Source

    有人知道我是否可以将 IDE 设置为在一个显示器和另一个显示器上显示源代码 我谈论相同的 pas 因为我可以在每个监视器中查看 2 个不同的 pas 不确定 XE 但在 2007 年你可以去Tools gt Options打开选项对话框 然
  • Windows 窗体旋转

    当您在 Net 中创建表单时 它会显示为纵向布局的对话框 通常没有人喜欢横向或颠倒地阅读 但我有一个非常充分的理由旋转表格 有人知道如何在 Windows Vista 上用 C 实现这一点吗 必须在 WinForms 中吗 在 WPF 中
  • Backbone.js 在填充集合后调用渲染

    我试图在获取集合后调用渲染 在我的初始化方法中 我有 this collection bind all this render this this collection fetch 在 IE 中 有时它似乎会在集合有数据之前尝试渲染 集合似
  • 如何将活动 Excel 工作簿附加到电子邮件

    我整个上午都在尝试获取此 VBA 脚本 将我的活动 Excel 文档附加到自动生成的 Outlook 消息中 如果我将文件路径声明为字符串并附加它 一切都会正常工作 除了我想附加当前 Excel 文档的完整文件路径而不是使用静态字符串值 这
  • 优化 boost::spirit::qi 解析器

    我有一个解析器 它基本上打印出堆栈机的操作 并根据给定的运算符优先级给出一些表达式 我的目标是尽可能优化速度 我读过了一篇关于 qi 优化的文章 https code google com p scribblings by apoch wi
  • Bash - 变量变量[重复]

    这个问题在这里已经有答案了 我有变量 foo something 并想使用 bar foo echo bar 得到 某事 的回应 在 bash 中 您可以使用 variable 使用可变变量 foo something bar foo ec
  • 查找具有 minidom 属性的元素

    Given
  • Python列表理解删除重复项

    我想要独特的元素hubcode list 我可以这样做 hubcode alarm obj HubAlarm objects all for obj in hubcode alarm obj hubcode obj hubcode if h
  • 为什么占用临时地址是非法的?

    我知道下面写的代码是非法的 void doSomething std string s int main doSomething std string Hello World return 0 原因是我们不允许获取临时对象的地址 但我的问题
  • 使用 pandas 读取 csv 时设置列类型

    尝试阅读csv文件到pandas具有以下格式的数据框 dp pd read csv products csv header 0 dtype name str review str rating int word count dict eng
  • 在 dc.js 中显示鼠标悬停时的附加数据属性

    我想在 dc js 中的鼠标悬停时显示其他数据标签和值 x 轴和 y 轴除外 下面是数据和图表代码 var people id 1 name Damaris gender Female DOB 1973 02 18 MaritalStatu
  • 将 Google 表格中的数字转换为文本/单词

    Example value desired output 300 Three Hundred 300 50 Three Hundred and 50 cents 我找不到在 Google Sheets 中执行此操作的方法 而且我也没有足够的
  • 如何使用 jQuery 在事件上重置表单元素(输入、选择、文本区域等)

    例如 我需要在单击跨度后重置表单元素 有没有一种方法可以通过 jQuery 重置 from 而无需选择每个元素并删除属性值 一些没有属性值的元素 例如文本区域或广播 还有一些喜欢button我不想从中删除价值 我想使用 jQuery 在其他
  • SQL Server 用户定义的函数来计算年龄段

    我创建了一个 UDF 来计算数据库中的年龄段 我使用了以下代码 CREATE FUNCTION Agebracket Ages INT RETURNS VARCHAR AS BEGIN DECLARE Age Group varchar S
  • Laravel 5 多表唯一验证

    例如 我有 2 个表 sites1 and sites2 我需要检查该字段url这是来自我的 html 表单 它是独一无二的 这是我的验证规则 public function rules return url gt unique sites
  • 如何用省略号隐藏多余的 div?

    我有一个标签输入字段 我需要显示尽可能多的内容 适合它周围的假 输入 div 如下所示 div class btn btn secondary span class tag Tag 1 span span class tag Tag 2 s