我需要一些帮助来了解对我来说意外的行为。
为什么h2仍然保持内联,即使我将它的display属性设置为阻止? 我希望它作为标题在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>
答案 0 :(得分:0)
因为这是设置为row
的flex nowrap
,这意味着父项的每个flex子项都是水平行中的单元格/列。
您需要在width: 100%
上使用flex-basis: 100%
或h2
,并将flex-wrap: wrap
添加到section
,或者您可以移动h2
1}}以上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>
或者从flex
中移除section
属性并将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>