当前位置: 首页 > 面试题库 >

flex项目内的CSS省略号

涂溪叠
2023-03-14
问题内容

我有一个基于flexbox的布局。两列,一列固定大小,第二列需要占用其余空间。在成长列中,我有一个字符串,希望将其剪切掉。

在Chrome中可以正常运行。但它在Firefox和IE中不起作用。我试图通过使用相对位置和绝对位置来给grow(flex
item)内部元素一个宽度来修复它,但是随后我得到了一个损坏的布局。损坏与元素的高度未考虑其所有子元素有关。

注意:flex grow项目内部的内部元素由几个 div 标签构建。

.cols {

  display: flex;

}



.flex--0 {

  flex: 0 0 auto;

}



.flex--1 {

  flex: 1 1 auto;

}



.absolute {

  position: absolute;

}



.relative {

  position: relative;

}



.width--100 {

  width: 100%;

}



.ellipsis {

  text-overflow: ellipsis;

  white-space: nowrap;

  overflow: hidden;

}



.border {

  border: 1px solid gray;

}


<h1>Ellipsis inside Flex item</h1>



<h2>Working fine in Chrome Not working in FF and IE</h2>



<div class="cols border">

  <div class="flex--0 border padding--sm">Icon</div>

  <div class="flex--1 border padding--sm">

    <div class="ellipsis">Icon lkdjasdoif dlkjasdfo;isd fasldf ;asofj as;doifja dflkas d;laiksjdf oaisjdf asldkfj a;slkfdj as;oifj as;ldkfj asldkfjowiejfa;wlkdfj as;lkdjf as;lkdfj a;osifj aw;lkefj asldkfj ;aolifj aw;oiefjasl;dkfj a;slkdfj aodfj aw;lfjk as;lkdfj a;oiwefjr</div>

    <div>Icon</div>

    <div>Icon</div>

    <div>Icon</div>

  </div>

</div>



<div>Second BLOCK</div>



<h2>Trying to fix in FF and IE (Layout corrupts)</h2>

<div class="cols border">

  <div class="flex--0 border padding--sm">Icon</div>

  <div class="flex--1 relative border padding--sm">

    <div class="absolute width--100">

      <div class="ellipsis">Icon lkdjasdoif dlkjasdfo;isd fasldf ;asofj as;doifja dflkas d;laiksjdf oaisjdf asldkfj a;slkfdj as;oifj as;ldkfj asldkfjowiejfa;wlkdfj as;lkdjf as;lkdfj a;osifj aw;lkefj asldkfj ;aolifj aw;oiefjasl;dkfj a;slkdfj aodfj aw;lfjk as;lkdfj a;oiwefjr</div>

      <div>Icon</div>

      <div>Icon</div>

      <div>Icon</div>

    </div>

  </div>

</div>



<div>Second BLOCK</div>

问题答案:

您可以添加min-width: 0;到弹性项目。

.flex--1 {
  flex: 1 1 auto;
  min-width: 0;
}

或添加overflow: hidden;到它。

.flex--1 {
  flex: 1 1 auto;
  overflow: hidden; /*or auto*/
}

html" target="_blank">jsFiddle

为什么?

[4.5。弹性项目的隐含最小大小

为了为弹性商品提供更合理的默认最小尺寸,此规范引入了一个新auto值作为CSS 2.1中定义的min-widthmin- height属性的初始值 。

或者,您可以将内容包装到容器中。

.container {
  display: table;
  table-layout: fixed;
  width: 100%;
}
.ellipsis {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}


 类似资料:
  • 问题内容: 第二行的CSS ,这可能吗?我在网上找不到。 例: 我想要的是这样的: 但这是怎么回事: 问题答案: 工作要求是(,等)的单行版本。这意味着文本永远不会到达第二行。 嗯 在纯CSS中不可能。 编辑 如果优秀的CSS众神将实现我们可以使用(new)和(new)在纯CSS中进行模糊处理。 编辑2 WebKit / Blink具有:将省略号放在第二行。

  • 问题内容: 我有的容器。我希望中间的孩子能占据整个空间,所以我定了它。到目前为止,一切都很好。 下一个级别是中间的孩子有2个孩子,因此我也希望将其设置为flex(如果您迷路了,请跳到摘要),第一个孩子设置省略号样式。现在,省略号停止工作。 如果您单击该按钮,您会看到所有带有短文本的内容都很好; 有任何想法吗? 问题答案: 添加到。 其实,MOSH Feu的建议在他的回答,也应该工作,确实,跨浏览器

  • 我正在尝试用flex创建一个布局(将是一个音乐播放器)。 我有3个按钮(上一个、播放和下一个,用红色方块表示),我总是希望它们在同一条线上。 然后,我想在按钮右侧显示一些歌曲信息(当前时间、歌曲标题和总时间)。 我几乎总是希望总时间在最右边,歌曲标题填满剩余的宽度(使用),但随着窗口变小,用省略号截断。 有人知道如何调整它以使其正常工作吗? https://jsfiddle.net/13ohs7j

  • 问题内容: 关于此的几个问题: 这是好习惯吗? 它将大规模地缩短加载时间吗? 会导致浏览器“崩溃”吗? JavaScript(/ jQuery)中的最后一个函数是否也是如此? 我的意思是这样的: 问题答案: 这是好习惯吗? 手动排除分号不是一个好习惯。这纯粹是因为添加更多样式时很容易忽略,尤其是在团队中工作时: 假设您从以下内容开始: 然后有人添加了一些样式: 突然,另一个开发人员在浪费时间弄清楚

  • 我有一个flex盒子里面的flex盒子的问题。http://jsfidle.net/fr077nn2/上的JS小提琴包含以下代码: 我正在尝试让.app-content div填充父.app div的剩余空间。它适用于外箱,如小提琴所示。但是,对于内部的盒子来说,CONTENT2并没有填补剩余的空间。我怀疑height:100%在这种情况下不起作用,因为父DIV的高度不是正确知道的...有何建议如

  • 省略 不推荐省略 0 值单位,原因如下: CSS 规范中可以省略单位只有 [<length-percentage>](https://drafts.csswg.org/css-values-3/#typedef-length-percentage),其他比如角度单位 deg 在 Chrome 中可以省略, 这是浏览器的 Bug。 注:可以省略的单位包括:%|em|ex|ch|rem|vw|vh|v