我已经设置了三个系列的容器和应用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;
}
ITEM1
flex: 1
ITEM2
flex: 1
ITEM3
flex: 1
您需要使用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;
}
ITEM1
flex: 1
ITEM2
flex: 1
ITEM3
flex: 1
这就是物品没有包装的原因:
您有一个Flex容器设置为width: 800px
.
容器有三个flex项设置为flex: 1
,这是以下的简写:
flex-grow: 1
flex-shrink: 1
flex-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;
}
ITEM1
flex: 1 0 250px
ITEM2
flex: 1 0 250px
ITEM3
flex: 1 0 400px