gpt4 book ai didi

html - 为什么全宽 flexbox 列会挤压它的兄弟列?

转载 作者:太空宇宙 更新时间:2023-11-04 16:23:42 24 4
gpt4 key购买 nike

当尝试创建一个主列应占用所有可用空间的类似表格的布局时,主列最终占用的空间比预期的要多,并将其他列推到容器边界之外。

我正在寻求的行为就好像我正在使用一个表格来布置它并且我给了一列 width: 100%

如果您查看下面的示例,您会发现第一行的第二列被压扁,即使要 overflow hidden 也是如此。第一列似乎比其他列具有某种大小优先级。

我很好奇为什么会发生这种情况以及什么是可重用的解决方案。我不想在任何列上设置固定宽度。

.list {
border: 1px solid #000;
}

.list-row {
display: flex;
border: 1px solid #AAA;
}

.list-column {
border: 1px solid blue;
white-space: nowrap;
}

.list-column--main {
flex-grow: 1;
}

.hide-overflow {
overflow: hidden;
}
<!DOCTYPE html>
<html>
<head>
<script src="https://rawgithub.com/ai/autoprefixer-rails/master/vendor/autoprefixer.js"></script>
<meta charset="utf-8">
<title>Example</title>
<style type="unprocessed" id="AutoprefixerIn">%css%</style>
<style id="AutoprefixerOut"></style>
<script>
AutoprefixerSettings = ""; //Specify here the browsers you want to target or leave empty
document.getElementById("AutoprefixerOut").innerHTML = autoprefixer(AutoprefixerSettings || null).process(document.getElementById("AutoprefixerIn").innerHTML).css;
</script>
</head>
<body>
<div class="list">
<div class="list-row">
<div class="list-column list-column--main hide-overflow">
The main column that has a very very very very very very very very very very very very very very very very very very very very very long title
</div>
<div class="list-column">
<a href="#">Close</a>
</div>
</div>
<div class="list-row">
<div class="list-column list-column--main hide-overflow">
A shorter title
</div>
<div class="list-column">
<a href="#">Close</a>
</div>
</div>
</div>
</body>
</html>

最佳答案

使用 flex-shrink 属性,您可以指定当某些内容对于框来说太宽时应该收缩更多的列。

.list-column {
flex-grow: 0;
flex-shrink: 0;
flex-basis: auto;
}
.list-column--main {
flex-grow: 1;
flex-shrink: 100;
flex-basis: 100%;
}

list-column--main 列是唯一增长的列,但也是唯一缩小的列。其他列不会增长到超过其原始大小,也不允许收缩。

通过阅读规范,我曾预计 flex-shrink: 1 会工作得很好,但实际上,像 flex-shrink: 100 这样更大的东西确实可以我想要的。

进一步阅读(flexbox 规范):http://www.w3.org/TR/css3-flexbox/#propdef-flex-shrink

关于html - 为什么全宽 flexbox 列会挤压它的兄弟列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27321522/

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