html - CSS 截断带有 flex-direction 列的 flexbox 父级中的文本

标签 html css flexbox alignment

如何截断下面的文本?最小宽度:0;当 flex-direction 设置为 column 时,hack 不起作用。这也不是answer .

.parent {
  border: 1px solid red;
  display: flex;
  align-items: center;
  flex-direction: column;
  width: 300px;
}

.text {
  white-space: nowrap;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}
<div class="parent">
   <img src="http://placekitten.com/g/200/200" />
  <div class="text">
    Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum 
  </div>
</div>

最佳答案

当你给 align-items: center text溢出 parent并且宽度不受限制,因此不会出现省略号。

如果您删除 align-items: center它之所以有效是因为 align-items: stretch是默认值 - 但图像现在被拉伸(stretch):

.parent {
  border: 1px solid red;
  display: flex;
  /*align-items: center;*/
  flex-direction: column;
  width: 300px;
}

.text {
  white-space: nowrap;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}
<div class="parent">
   <img src="http://placekitten.com/g/200/200" />
  <div class="text">
    Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum 
  </div>
</div>


解决方案

添加 width: 100%text - 见下面的演示:

.parent {
  border: 1px solid red;
  display: flex;
  align-items: center;
  flex-direction: column;
  width: 300px;
}

.text {
  white-space: nowrap;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  width: 100%;
}
<div class="parent">
   <img src="http://placekitten.com/g/200/200" />
  <div class="text">
    Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum 
  </div>
</div>


The min-width: 0; hack doesn't work when flex-direction is set to column.



请注意,在 min-width: 0如果用于覆盖 flex 元素宽度,因为它在行方向上是自动的(对于列方向,您使用 min-height )。 min-height: 0 见下面的例子在列 flexbox 中使用:
  • Flexbox resize and scrollable overflow
  • 关于html - CSS 截断带有 flex-direction 列的 flexbox 父级中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55356954/

    相关文章:

    php - 使用 css 和 jquery 围绕画廊中的事件图像边框

    html - 网格中较短的 div 以填充剩余的垂直空间+将列表元素对齐到底部

    html - Chrome/IE 和 Edge 之间的 CSS flex 显示区别?

    javascript - 使用 transition-delay 选项 (css) 和 JS 使 div 移动

    javascript - Bootstrap 4 sticky-top margin-top

    javascript - 针对 iPad 3 但不是 iPad 4

    css - 响应式 EDM(HTML 电子邮件)资源/教程?

    html - 如果固定高度容器内的内容比容器高度长,有没有办法在 css 中自动创建列?

    javascript - 选择单选按钮后使复选框可见

    javascript - 如何在 Django 博客中添加社交分享按钮