gpt4 book ai didi

html - flex 元素不包装

转载 作者:行者123 更新时间:2023-11-28 16:41:55 25 4
gpt4 key购买 nike

我的问题是我在 article 中有一个 section 我制作了一个 flexbox,当我减小浏览器的大小时,该 flexbox 中的这 3 个元素将重叠。有什么建议吗?

body {
display: flex;
flex-direction: column;
}
header {
background: blue;
}
main {
display: flex;
flex-direction: row;
flex: auto;
}
article {
flex: 2;
overflow-y: auto;
background: red;
}
aside {
flex: 1;
overflow-y: auto;
background: green;
}
.test {
display: flex;
flex-direction: row;
flex: auto;
align-items: stretch;
background: pink;
}
<body>
<header>
Test
</header>
<main>
<article>
<section>
test
</section>
<section class="test">
<div>
div one
</div>
div two
<div>
div three
</div>
<div>
</div>
</section>
</article>
<aside>
aside
</aside>
</main>
<footer>
</footer>
</body>

http://jsfiddle.net/zLmcyjy6/

最佳答案

尝试添加 flex-wrap: wrap到 flex 容器。 flex 元素默认不换行。


引用your website (我没有使用你的 fiddle demo ,它有不同的代码),每个非包装元素都是一个 <section> <section class="other"> 的 child ,这是一个行方向的、支持换行的 flex 容器。

每个<section> flex 元素有一个 flex: 1应用。这转化为:

  • flex-grow: 1
  • flex-shrink: 1
  • flex-basis: 0

flex-basis设置为零,flex元素的初始主要尺寸为0,宽度可以缩小到那个程度,所以没有机会换行。

我建议更改 flex-basis: 0类似于 flex-basis: calc(33% - 2em) (即,宽度减去大约边距、边框、填充),适用于更宽的屏幕。所以flex: 1 1 calc(33% - 2em) .

然后对于较小的屏幕,使用媒体查询,设置 flex-basis类似于:

@media screen and ( max-width: 500px ) {
.fitness, .education, .pastimes {
flex-basis: 100%;
display: flex; /* optional; for nicer alignment */
flex-direction: column; /* optional; for nicer alignment */ }
}

或者,如果您想避免使用媒体查询,您可以将固定值设置为 flex-basis这也将启用换行。类似于 flex: 1 0 200px .

关于html - flex 元素不包装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33618493/

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