我有一个基于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-width
和min- 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