当前位置: 首页 > 知识库问答 >
问题:

省略号在flex容器中不起作用

东云
2023-03-14

我正在尝试用flex创建一个布局(将是一个音乐播放器)。

我有3个按钮(上一个、播放和下一个,用红色方块表示),我总是希望它们在同一条线上。

然后,我想在按钮右侧显示一些歌曲信息(当前时间、歌曲标题和总时间)。

我几乎总是希望总时间在最右边,歌曲标题填满剩余的宽度(使用flex grow),但随着窗口变小,用省略号截断。

有人知道如何调整它以使其正常工作吗?

.wrapper {
  display: flex;
  align-items: center;
}
ul {
  display: inline-block;
  list-style: none;
  flex-shrink: 0;
}
li {
  display: inline-block;
  width: 30px;
  height: 30px;
  background: red;
  margin-right: 3px;
}
.song-wrapper {
  background: beige;
  display: flex;
  flex-grow: 1;
}
.song-title {
  background: blue;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex-grow: 1;
}
<div class="wrapper">
  <ul>
    <li></li>
    <li></li>
    <li></li>
  </ul>
  <div class="song-wrapper">
    <span>1:23</span>
    <span class="song-title">This is the song title and I want it to ellipsize if the screen shrinks</span>
    <span>4:22</span>
  </div>
</div>

https://jsfiddle.net/13ohs7jx/

共有1个答案

刘昌翰
2023-03-14

你有溢出:隐藏应用到. son-title

它还需要位于父级上:

.song-wrapper {
   overflow: hidden; /* NEW */
   background: beige;
   display: flex;
   flex-grow: 1;
}
.wrapper {
  display: flex;
  align-items: center;
}
ul {
  display: inline-block;
  list-style: none;
  flex-shrink: 0;
}
li {
  display: inline-block;
  width: 30px;
  height: 30px;
  background: red;
  margin-right: 3px;
}
.song-wrapper {
  background: beige;
  display: flex;
  flex-grow: 1;
  overflow: hidden;
}
.song-title {
  background: aqua;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex-grow: 1;
}
html prettyprint-override"><div class="wrapper">
  <ul>
    <li></li>
    <li></li>
    <li></li>
  </ul>
  <div class="song-wrapper">
    <span>1:23</span>
    <span class="song-title">This is the song title and I want it to ellipsize if the screen shrinks</span>
    <span>4:22</span>
  </div>
</div>
 类似资料:
  • 问题内容: 我有的容器。我希望中间的孩子能占据整个空间,所以我定了它。到目前为止,一切都很好。 下一个级别是中间的孩子有2个孩子,因此我也希望将其设置为flex(如果您迷路了,请跳到摘要),第一个孩子设置省略号样式。现在,省略号停止工作。 如果您单击该按钮,您会看到所有带有短文本的内容都很好; 有任何想法吗? 问题答案: 添加到。 其实,MOSH Feu的建议在他的回答,也应该工作,确实,跨浏览器

  • 我知道这些帖子: 在flexbox中防止子元素溢出其父元素 flex子节点上的文本溢出省略号不工作 为什么flex项不缩小过去的内容大小? 没有答案从那里修复我在下面的代码片段中的问题。这是html树: 父柔性柱 子柔性行 标签flex(因此我可以垂直对齐文本) 我能让它工作的唯一方法是将标签设为,但我真的希望保留flex。 我已经做了: 关于儿童: 设置 设置 设置溢出:隐藏 设置

  • 问题内容: 我想在页脚元素的右边放置文本(foo链接)。 我需要保留页脚显示。 但是当我将其设置为时,span不再起作用。 问题答案: 该属性在flex容器中被忽略。 根据flexbox规范: 3. Flex容器:和显示值 一个伸缩容器为其内容建立一个新的_伸缩格式上下文_。这与建立块格式化上下文相同,除了使用Flex布局而不是块布局。 例如,浮点数不会侵入flex容器,并且flex容器的边距不会

  • 我试图把省略号文本溢出: 家长: 儿童: 而且,是,但没有任何省略号。

  • 问题内容: 自从Firefox Nightly(35.0a1)的最新(?)版本以来,我一直在使用的flexbox容器内部遇到问题,每个列的宽度为50%。 演示: 在“每晚”中,文本将泄漏到其容器外部,并且不会在末尾附加。在Chrome和Firefox稳定版中,它可以按预期工作。 问题答案: 最终可以追溯到Firefox Nightly中的最新更改。长话短说,选择器上的设置将使其按预期工作。 在这里

  • 问题内容: 这是我尝试过的: 本质上,当窗口变小时,我希望跨度以省略号缩小。我做错什么了? 问题答案: 您需要具有CSS ,(或)和。