The*_*ewy 9 html css css3 flexbox
我已经设置了三个系列的容器和应用display: flex;,并flex-wrap: wrap;给他们,但是当我缩小窗口的大小,他们没有包装?
我已经把代码放在下面,似乎无法解决问题的根源.
body {
font-family: arial;
}
p {
color: white;
}
.container {
background-color: #666;
width: 800px;
height: 200px;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: center;
}
.item {
padding: 10px;
box-sizing: border-box;
}
.item1 {
flex: 1;
background-color: red;
}
.item2 {
flex: 1;
background-color: blue;
}
.item3 {
flex: 1;
background-color: green;
}Run Code Online (Sandbox Code Playgroud)
<div class="container">
<div class="item item1">
<h1>ITEM1</h1>
<p>flex: 1</p>
</div>
<div class="item item2">
<h1>ITEM2</h1>
<p>flex: 1</p>
</div>
<div class="item item3">
<h1>ITEM3</h1>
<p>flex: 1</p>
</div>
</div>Run Code Online (Sandbox Code Playgroud)
Chi*_*ler 15
您需要使用max-width而不是width在容器上,您必须允许容器缩小以包装项目.
body {
font-family: arial;
}
p {
color: white;
}
.container {
background-color: #666;
max-width: 800px;
height: 200px;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: center;
}
.item {
padding: 10px;
box-sizing: border-box;
}
.item1 {
flex: 1;
background-color: red;
}
.item2 {
flex: 1;
background-color: blue;
}
.item3 {
flex: 1;
background-color: green;
}Run Code Online (Sandbox Code Playgroud)
<div class="container">
<div class="item item1">
<h1>ITEM1</h1>
<p>flex: 1</p>
</div>
<div class="item item2">
<h1>ITEM2</h1>
<p>flex: 1</p>
</div>
<div class="item item3">
<h1>ITEM3</h1>
<p>flex: 1</p>
</div>
</div>Run Code Online (Sandbox Code Playgroud)
这就是物品没有包装的原因:
您有一个Flex容器设置为width: 800px.
容器有三个flex项设置为flex: 1,这是以下的简写:
flex-grow: 1flex-shrink: 1flex-basis: 0这意味着每个项目的实际宽度为0(flex-basis: 0),并且每个项目的大小都基于行(flex-grow: 1)上的可用空间.
因此,实际上,无论可能是什么,您都将每个项目的大小调整为该行空间的三分之一.因此,每个项目都可以收缩width: 0,并且它们永远不会包裹.
如果您添加内容和/或width和/或flex-basis一个或多个项目,并且项目增长超过800px(容器的宽度),那么您的flex项目将换行.
但请注意,它们不会根据您重新调整浏览器窗口的大小进行换行,因为容器不会占用width: 100%视口.它们只会根据容器的宽度进行换行.
body {
font-family: arial;
}
p {
color: white;
}
.container {
background-color: #666;
width: 800px;
height: 200px;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: center;
}
.item {
padding: 10px;
box-sizing: border-box;
}
.item1 {
flex: 1 0 250px;
background-color: red;
}
.item2 {
flex: 1 0 250px;
background-color: blue;
}
.item3 {
flex: 1 0 400px;
background-color: green;
}Run Code Online (Sandbox Code Playgroud)
<div class="container">
<div class="item item1">
<h1>ITEM1</h1>
<p>flex: 1 0 250px</p>
</div>
<div class="item item2">
<h1>ITEM2</h1>
<p>flex: 1 0 250px</p>
</div>
<div class="item item3">
<h1>ITEM3</h1>
<p>flex: 1 0 400px</p>
</div>
</div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14040 次 |
| 最近记录: |