我有一个具有多个单元格的Flexbox行,最后一个单元格(假设是D4)的宽度是可变的(flex-grow: 1).该div将在其中包含另一个具有实际文本的div.现在,我的问题是文本远远超出了父div(D4)的宽度.我试着添加text-overflow: ellipsis;overflow: hidden,但没有固定的width,它自然不起作用.请问驯服这种内心世界的最好方法是什么?

这是我正在try 做的一个小模型--在这个片段中,我将父div限制为.menu到500px,但这只是为了演示,我的实际div是页面的宽度.当文本比父宽度长时,它会延伸到页面之外,并向页面添加滚动条,这是我试图避免的.

请问我怎样才能做到这一点呢?

/* converted from scss */
.menu {
  display: flex;
  border: 1px solid red;
  width: 500px;
}

.menu__item {
  border: 1px solid black;
  padding: 5px;
}

.menu__item--description {
  flex-grow: 1;
}

.menu__item--description div {
  display: flex;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  max-width: 100%; /* doesn't work */
}
<div class="menu">
  <div class="menu__item">One</div>
  <div class="menu__item">Two</div>
  <div class="menu__item">Three</div>
  <div class="menu__item menu__item--description">
    <div>
      But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system
    </div>
  </div>
</div>

推荐答案

您可以将overflow: hidden;加到.menu__item--description上,然后在.menu__item--description div上删除display: flex;.

/* converted from scss */
.menu {
  display: flex;
  border: 1px solid red;
  width: 500px;
}

.menu__item {
  border: 1px solid black;
  padding: 5px;
}

.menu__item--description {
  flex-grow: 1;
  overflow: hidden;
}

.menu__item--description div {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  max-width: 100%;
}
<div class="menu">
  <div class="menu__item">One</div>
  <div class="menu__item">Two</div>
  <div class="menu__item">Three</div>
  <div class="menu__item menu__item--description">
    <div id="tekstdiv">
      But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system
    </div>
  </div>
</div>

Css相关问答推荐

当optgroup元素不包含任何未使用CSS禁用的选项元素时,如何隐藏它

当面板以Angular 上升时如何定位下拉面板

如何在react 路由中设置活动类?

flexbox换行时自动设置高度的原理是什么

React Tabs 在 Tabs 之间垂直渲染标签内容

Nextjs Tailwind Marquee 组件溢出

通过 CSS 中的媒体查询更改站点的页面大小

如果中间元素的内容不适合 CSS,如何将其分隔到新行?

如何在流线型多页面应用程序中在表情符号和页面名称之间留出一些空白

使用 React-Router 和 Outlet 时如何确保内容保持在下方

宽度为 x VW 的元素似乎对窗口调整大小没有react

将一行文本保留为单行 - 换行或不换行

Bootstrap:在列之间添加边距/填充空间

如何在 html/css 中的图像旁边垂直居中文本?

iPhone X / 8 / 8 Plus CSS 媒体查询

悬停效果:展开底部边框

css3 nth 类型限制为类

为什么 CSS 中的光标:指针效果不起作用

使图像具有响应性 - 最简单的方法

如何在 CSS 中给出背景图像路径?