文本是在调整Flexbox的孩子,而不是包装(使用Flex-成长)[复制]

问题描述 投票:1回答:1

这个问题已经在这里有一个答案:

我使用的柔性成长和媒体查询在试图做一个简单的和敏感部位。然而,而不是包装,文字似乎是在调整的div,它在和抵消一切。有谁知道为什么发生这种情况?

我认为这种行为是与事实,我使用柔性成长的事情。我试过设置最小/最大宽度,也尝试了各种不同的自动换行特性,但还没有运气。

这里是我的代码:

jsFiddle

<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;
  }
}
html css flexbox
1个回答
1
投票

你不必在你的Flexbox的儿童设置的任何宽度,所以当你有更多的文本内容,这些div将增长。

jsFiddle

您可以添加这样的:

    #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>
© www.soinside.com 2019 - 2024. All rights reserved.