gpt4 book ai didi

html - flex 容器内的 block 元素未按预期运行

转载 作者:太空宇宙 更新时间:2023-11-04 08:39:20 26 4
gpt4 key购买 nike

我需要一些帮助来了解对我来说什么是意外行为。

为什么 h2 保持内联,即使我将它的显示属性设置为阻塞?我希望它作为标题在 div 元素之上 100% 宽。

section{
border: 1px solid red;
display: flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: space-around;
align-items: stretch;
}

h2 {
display: block;
border: 1px solid red;
}
<section>
<h2>main title</h2>
<div>
<h3>title</h3>
<ul>
<li>element 1</li>
<li>element 2</li>
<li>element 3</li>
<li>element 4</li>
<li>element 5</li>
</ul>
</div>
<div>
<h3>title</h3>
<ul>
<li>element 1</li>
<li>element 2</li>
<li>element 3</li>
<li>element 4</li>
<li>element 5</li>
</ul>
</div>
<div>
<h3>title</h3>
<ul>
<li>element 1</li>
<li>element 2</li>
<li>element 3</li>
<li>element 4</li>
<li>element 5</li>
</ul>
</div>
</section>

最佳答案

因为这是一个设置为 nowrap 的 flex row,这意味着父级的每个 flex 子级都将是水平行中的一个单元格/列。

您需要在 h2 上使用 width: 100%flex-basis: 100% 并添加 flex-wrap:将包裹到section,或者你可以将h2移动到section...

section {
border: 1px solid red;
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-around;
align-items: stretch;
}

h2 {
display: block;
border: 1px solid red;
width: 100%;
}
<section>
<h2>main title</h2>
<div>
<h3>title</h3>
<ul>
<li>element 1</li>
<li>element 2</li>
<li>element 3</li>
<li>element 4</li>
<li>element 5</li>
</ul>
</div>
<div>
<h3>title</h3>
<ul>
<li>element 1</li>
<li>element 2</li>
<li>element 3</li>
<li>element 4</li>
<li>element 5</li>
</ul>
</div>
<div>
<h3>title</h3>
<ul>
<li>element 1</li>
<li>element 2</li>
<li>element 3</li>
<li>element 4</li>
<li>element 5</li>
</ul>
</div>
</section>

或者从 section 中删除 flex 属性并将 3 列 div 包装在一个新元素中并在那里应用 flex 元素。

.flex {
border: 1px solid red;
display: flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: space-around;
align-items: stretch;
}

h2 {
display: block;
border: 1px solid red;
}
<section>
<h2>main title</h2>
<div class="flex">
<div>
<h3>title</h3>
<ul>
<li>element 1</li>
<li>element 2</li>
<li>element 3</li>
<li>element 4</li>
<li>element 5</li>
</ul>
</div>
<div>
<h3>title</h3>
<ul>
<li>element 1</li>
<li>element 2</li>
<li>element 3</li>
<li>element 4</li>
<li>element 5</li>
</ul>
</div>
<div>
<h3>title</h3>
<ul>
<li>element 1</li>
<li>element 2</li>
<li>element 3</li>
<li>element 4</li>
<li>element 5</li>
</ul>
</div>
</div>
</section>

关于html - flex 容器内的 block 元素未按预期运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44248840/

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