如何使弹性盒与需要截断文本的嵌套子项一起使用?

2024-04-27

要让 flex-child 截断带有省略号的文本,可以给父级一个 min-with:0。在我的项目中,子组件嵌套在几乎 10 个不同的弹性容器中。我是否需要给所有父母一个 min-width:0 或者有更好的解决方法吗?

sandbox https://codepen.io/wong3000/pen/OJzvJOQ

body {
  width: 400px;
}

.flex-parent {
  display: flex;
  padding: 10px;
  border: solid;
}

.flex-parent-parent {
  display: flex;
  border: solid;
  padding: 10px;
}

.flex-parent-parent-parent {
  display: flex;
  border: solid;
  padding: 10px;
}

.long-and-truncated {
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
<div class="flex-parent-parent-parent">
  <div class="flex-parent-parent">
    <div class="flex-parent">
      <div class="flex-child long-and-truncated">
        1. This is a long string that is OK to truncate please and thank you
      </div>
    </div>
  </div>
</div>

这是由于弹性项目的自动最小尺寸 https://www.w3.org/TR/css-flexbox-1/#min-size-auto。有一个解释这种行为的优秀答案 https://stackoverflow.com/a/36247448/6036546其中说:

如果您正在处理 HTML 结构的多个级别上的 Flex 项目,则可能需要覆盖较高级别项目上的默认 min-width: auto / min-height: auto 。

基本上,具有 min-width: auto 的更高级别的 Flex 项目可以防止使用 min-width: 0 嵌套在下面的项目收缩。

你需要覆盖min-width以某种方式在链上的每个柔性容器上。它不一定是0只是除以下之外的任何值auto。例如:

body {
  width: 400px;
}

.flex-parent,
.flex-parent-parent,
.flex-parent-parent-parent {
  display: flex;
  padding: 10px;
  border: solid;
  min-width: 200px;
}

.flex-parent {
  min-width: 0;
}

.long-and-truncated {
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
<div class="flex-parent-parent-parent">
  <div class="flex-parent-parent">
    <div class="flex-parent">
      <div class="flex-child long-and-truncated">
    1. This is a long string that is OK to truncate please and thank you
      </div>
    </div>
  </div>
</div>

在我的示例中,我将所有 Flex 容器设置为具有相同的min-width值,但这不是必需的。您可以根据布局中的需要将每个设置设置为唯一。

.flex-parent { min-width: 0; }
.flex-parent-parent { min-width: 100px; }
.flex-parent-parent-parent { min-width: 400px; }

还有另一种方法可以实现此行为,但仍然涉及所有嵌套的 Flex 容器:

.flex-parent,
.flex-parent-parent,
.flex-parent-parent-parent {
  display: flex;
  box-sizing: border-box;
  max-width: 100%;
}

通过设置一些组合min-width and/or max-width在每个嵌套的弹性容器上,您应该能够截断文本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使弹性盒与需要截断文本的嵌套子项一起使用? 的相关文章

  • 有没有一种巧妙的方法来获取表示层中背景图像的归属?

    我有一张由 CSS 引入的 CC BY 图像 用作背景 这张图片纯粹是为了它的外观 绝对不是内容 我需要在某个地方对此图像进行归属 显然最好将此归属链接到提供该图像的好心人 但是 我真的不想将链接文本放入 HTML 中 因为这会破坏实际内容
  • 如何在 Firefox 和 IE 中获得自定义滚动条?

    我正在使用自定义滚动 它在 chrome 中工作正常 但在 Firefox 或 IE9 中不起作用 这是CSS webkit scrollbar width 7px height 1px webkit scrollbar thumb hei
  • img 标签如何通过 cors 标头获取内容

    为什么当我使用 fetch 从禁用响应 CORS 标头的服务器加载数据时 我预期会收到错误 Failed to load http www imgworlds com wp content uploads 2015 12 18 CONTAC
  • 如何处理触摸设备上的悬停效果

    我有以下代码 div img src http placehold it 350x150 div class link cont a href click here to see more info a div div div width
  • C++:从字符串中删除所有 HTML 格式?

    我有一个字符串 其中可能包含 br 或 span span 标签或其他 HTML 字符 实体 我想要一种强大的方法来剥离所有这些并获取剩余的 UTF 8 字符 理想情况下 这应该是跨平台的 像这样的东西是理想的 http snipplr c
  • 元素特定区域的背景颜色

    我想要实现的是将悬停效果放在光标的位置上 像这样的东西 https drmportal com https drmportal com 这是一个小提琴 https jsfiddle net onnmwyhd https jsfiddle n
  • HTML 5 视频自定义控件

    与许多 Web 开发人员一样 我期待着利用新的 HTML 5 进行流式传输视频
  • CSS 圆角

    我见过很多这方面的代码 但似乎没有一个能很好地工作或根本无法工作 我已经将图片用于圆角 但我需要代码 以便它能够围绕圆角 table 我找到的解决这个问题的唯一解决方案是在边框周围的单元格中添加图像 我还能尝试什么吗 Try selecto
  • 如何从 angularJS 模板调用encodeURIComponent?

    我的 Angular JS 模板中有一个块 a href foos foo id foo name a 但是 foo id 属性有时可能包含时髦字符 我想做这样的事情 a href foos encodeURIComponent foo i
  • JQuery:检查元素是否处于正常流程中

    使用 jQuery 检查元素是否在正常流程中的最优雅的方法是什么 根据CSS3规范 http www w3 org TR css3 box 如果满足以下条件 则框属于流 其 display 的使用值为 block list item tab
  • CSS 居中变换

    为什么使用变换居中可以完美地平移并左 50 居中 相对于父级的位置 但右 50 却不能 工作示例 span class icon position absolute top 50 left 50 transform translate 50
  • 锚标记内的 CakePHP Span 标记

    我试图让 CakePHP 输出一个如下所示的链接 a href foo bar class some other classes span class icon new span FooBar a 所以我在我看来使用以下代码
  • 如何调试@font-face问题?

    我有以下 CSS 代码 theMixPlainSemiBold font face font family theMixPlainSemiBold src url css fonts eot src url css fonts eot ie
  • 相当于Outlook中的浮动

    我在尝试着float left一些表 但是刚刚遇到一个大问题 outlook不支持float 好吧 然后我尝试使用表格对齐等 但没有运气 桌子只是显示在彼此下方 而不是彼此并排 对此我们能做些什么吗 PS 它在其他设备上工作得很好 它只是
  • 计算网站上多个文件的下载次数的最佳方法[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 问题是 计算网站上多个文件的下载次数的最佳方法 我正在尝试做的事情 跟踪并统计多个文件的下载数量 对于具有不同扩展名的文件 foo z
  • Electron 中的收据热敏打印机

    我需要找到一种在 javascript 中打印收据的方法Electron 我已经尝试过了QZ TRAY但由于 Electron 它不起作用 我也尝试过节点热敏打印机但它也从来没有对我有用 这里有人知道如何在 javascript Elect
  • 常见的电子邮件客户端是否会预取链接而不是图像?

    尽管我知道很多电子邮件客户端会预取或以其他方式缓存图像 我不知道有任何预取常规链接 例如 a href somelinkhere some link a 这是某些电子邮件的做法吗 如果是 是否存在某种不跟随类型rel可以添加到链接中以帮助防
  • 不透明div内的透明文本

    我有一个背景图像 上面有一个白色的 div 我希望该 div 内的文本是透明的 以便您可以 透过 背景图像 这有可能吗 应该看起来像这样 您需要将其用于您的文本CSS webkit text fill color transparent
  • 将 ASP.NET TextBox 呈现为 HTML5 输入类型“Number”

    当 ASP NET TextBox 呈现时 它会生成
  • 将背景图像放入菱形容器中会导致容器失去形状

    标题总结得很好 我可以很容易地绘制菱形 但是当我将图像添加到背景时 它会为形状添加更多边 我似乎无法弄清楚为什么添加背景图像时会发生这种情况 任何意见 将不胜感激 这是我的代码 请原谅内联 css 我只是这样做 直到我有一个可行的解决方案

随机推荐