html - 使用 flexbox 设置基于同级元素的最大宽度

标签 html css

我正在为包含图像和文本元素的缩略图组件设计布局。图片具有 height: 100px; 和自动宽度,而文本的宽度应不超过图片的宽度,溢出部分应该被隐藏。

<div>
    <img src="...">
    <span>a bunch of text that should be cut off</span>
</div>

我已经尝试使用 flexbox 完成此操作,但无法使文本宽度等于图像宽度。相反,文本只会增长 100% 并拉伸(stretch)图像。

See my jsbin

最佳答案

  1. 您需要指定容器的宽度 -> 以便您的文本框知道它的宽度。
  2. 您需要告诉文本不要换行。
  3. 您需要 overflow hidden 的文本。
  4. 您需要为溢出的文本添加省略号。

以下代码有效:

.main {
  border: 1px solid red;
  display: flex;
  flex-wrap: wrap;
  width: 50%; // px would also work
}
.main img {
  height: 100px;
  flex: 0 0 100%;
}
.main div {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
<div class="main">
  <img src="http://i.imgur.com/uiGur1h.jpg" alt="">
  <div>Text go here </div>
</div>
<div class="main">
  <img src="http://i.imgur.com/uiGur1h.jpg" alt="">
  <div>Text would go here but would be cut off if it's very long </div>
</div>


请参阅 https://developer.mozilla.org/en/docs/Web/CSS/text-overflow 中的示例

关于html - 使用 flexbox 设置基于同级元素的最大宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32184404/

相关文章:

html - Schema.org 中网页结构的隐含性

javascript - 带有文本形式替代的 Bootstrap 子菜单?

javascript - 如何水平对齐 flex 盒中的一项?

html - 关于 z-index 的困惑

javascript - 菜单按钮效果

html - 如何在 Bootstrap 中不重叠地 float div

html - 类似 Twitter 的头像/用户名链接突出显示

html - 悬停和链接边框之间的空间

html - 使用 Material Design Lite 自动完成/搜索建议?

html - 使两个值的 div 宽度最大?