gpt4 book ai didi

html - flex 元素内的 CSS 省略号

转载 作者:技术小花猫 更新时间:2023-10-29 11:51:58 24 4
gpt4 key购买 nike

我有一个基于 flexbox 的布局。两列,一个固定大小,第二个需要占用剩余空间。在增长列中,我有一个字符串,我希望它被剪裁。

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

注意:flex grow 元素中的内部元素是用几个 div 标签构建的。

这是 jsFiddle .

.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 元素。

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

jsFiddle

或者添加overflow: hidden;

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

jsFiddle


为什么?

4.5. Implied Minimum Size of Flex Items

To provide a more reasonable default minimum size for flex items, this specification introduces a new auto value as the initial value of the min-width and min-height properties defined in CSS 2.1.


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

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

jsFiddle

关于html - flex 元素内的 CSS 省略号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29947245/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com