这个问题已经在这里有一个答案:
我使用的柔性成长和媒体查询在试图做一个简单的和敏感部位。然而,而不是包装,文字似乎是在调整的div,它在和抵消一切。有谁知道为什么发生这种情况?
我认为这种行为是与事实,我使用柔性成长的事情。我试过设置最小/最大宽度,也尝试了各种不同的自动换行特性,但还没有运气。
这里是我的代码:
<div id="container">
<div id="title">
<h1>Title</h1>
</div>
<div class="work" id="motion">
<h2>Sub</h2>
</div>
<div class="work" id="print">
<h2>Sub</h2>
</div>
<div class="work" id="interaction">
<h2>Sub</h2>
</div>
</div>
* {
margin: 0;
padding: 0;
}
html,
body {
height: 100%;
width: 100%;
}
h1,
h2,
h3,
h4,
h5,
h6,
p {
font-family: sans-serif;
font-weight: normal;
max-width: 100%;
}
#container h1,
h2 {
padding: 1rem;
}
#container {
height: 100%;
display: flex;
flex-direction: row;
}
#title {
background-color: red;
flex-grow: 2;
margin: 1em;
min-height: 15em;
}
.work {
margin: 1em;
flex-grow: 1;
background-color: gray;
min-width: 4em;
}
#motion,
#print,
#title {
margin-right: 0;
margin-bottom: 1em;
}
#interaction {}
@media only screen and (max-width: 1020px) {
body {
background-color: blue;
}
#container {
flex-direction: column;
flex-wrap: wrap;
height: 100%;
}
#motion,
#print {
margin-right: 1em;
margin-bottom: 0;
}
.work {
min-height: 10em;
}
#title {
height: 100%;
}
}
@media only screen and (max-width: 600px) {
body {
background-color: yellow;
}
#motion,
#print,
#title {
margin-right: 1em;
margin-bottom: 0;
}
#container {
flex-wrap: nowrap;
}
}
你不必在你的Flexbox的儿童设置的任何宽度,所以当你有更多的文本内容,这些div将增长。
您可以添加这样的:
#container > div {
width: calc(25% - 2em); /* Minus 2 em for the 1em margin on left and right */
}
@media only screen and (max-width: 1020px) {
#container>div {
width: calc(33% - 2em);
}
}
@media only screen and (max-width: 600px) {
#container>div {
width: calc(100% - 2em);
}
}
* {
margin: 0;
padding: 0;
}
html,
body {
height: 100%;
width: 100%;
}
h1,
h2,
h3,
h4,
h5,
h6,
p {
font-family: sans-serif;
font-weight: normal;
max-width: 100%;
}
#container h1,
h2 {
padding: 1rem;
}
#container {
height: 100%;
display: flex;
flex-direction: row;
}
#container>div {
width: calc(25% - 2em);
}
#title {
background-color: red;
flex-grow: 2;
margin: 1em;
min-height: 15em;
}
.work {
margin: 1em;
flex-grow: 1;
background-color: gray;
min-width: 4em;
}
#motion,
#print,
#title {
margin-right: 0;
margin-bottom: 1em;
}
#interaction {}
@media only screen and (max-width: 1020px) {
body {
background-color: blue;
}
#container {
flex-direction: column;
flex-wrap: wrap;
height: 100%;
}
#container>div {
width: calc(33% - 2em);
}
#motion,
#print {
margin-right: 1em;
margin-bottom: 0;
}
.work {
min-height: 10em;
}
#title {
height: 100%;
}
}
@media only screen and (max-width: 600px) {
body {
background-color: yellow;
}
#motion,
#print,
#title {
margin-right: 1em;
margin-bottom: 0;
}
#container {
flex-wrap: nowrap;
}
#container>div {
width: calc(100% - 2em);
}
}
<div id="container">
<div id="title">
<h1>Title</h1>
</div>
<div class="work" id="motion">
<h2>Sub Sub Sub Sub Sub Sub Sub Sub Sub Sub </h2>
</div>
<div class="work" id="print">
<h2>Sub</h2>
</div>
<div class="work" id="interaction">
<h2>Sub</h2>
</div>
</div>