首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用flexbox设置div宽度

如何使用flexbox设置div宽度
EN

Stack Overflow用户
提问于 2020-09-20 18:18:05
回答 3查看 45关注 0票数 1

我正在使用带有几个div元素(它们都具有相同的高度)的flexbox构建布局。我想让它们占据整个页面的宽度或一半,在最后一种情况下,我会有两个相邻的块,两者都有50%的宽度,以便仍然填充整个页面的宽度。

问题是,当我使用flexbox时,似乎有什么东西覆盖了块的宽度,只将它们推入一行,但我想让它们排成几行。

你能帮我弄明白我做错了什么吗?谢谢!

代码语言:javascript
复制
.container {
  width:100vw;
  height: auto;
  display: flex;
  flex-direction: row;
}
.element {
  height: 300px;
  padding: 30px;
  box-sizing: border-box;
}
.full {
  width: 100%;
}
.half {
  width: 50%;
}
#element-1 {
  background-color: pink;
}
#element-2 {
  background-color: wheat;
}
#element-3 {
  background-color: cadetBlue;
}
#element-4 {
  background-color: IndianRed;
}
代码语言:javascript
复制
<div class="container">
  <div class="element full" id="element-1">
    <h1>Title Here</h1>
  </div>
  <div class="element half" id="element-2">
    <h1>Title Here</h1>
  </div>
  <div class="element half" id="element-3">
    <h1>Title Here</h1>
  </div>
  <div class="element full" id="element-4">
    <h1>Title Here</h1>
  </div>
</div>

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-09-20 18:35:32

您需要通过添加flex-wrap:wrap来告诉元素进行包装。

代码语言:javascript
复制
.container {
  width:100vw;
  height: auto;
  display: flex;
  flex-direction: row;
  flex-wrap:wrap;
}
.element {
  height: 100px;
  padding: 30px;
  box-sizing: border-box;
}
.full {
  width: 100%;
}
.half {
  width: 50%;
}
#element-1 {
  background-color: pink;
}
#element-2 {
  background-color: wheat;
}
#element-3 {
  background-color: cadetBlue;
}
#element-4 {
  background-color: IndianRed;
}
代码语言:javascript
复制
<div class="container">
  <div class="element full" id="element-1">
    <h1>Title Here</h1>
  </div>
  <div class="element half" id="element-2">
    <h1>Title Here</h1>
  </div>
  <div class="element half" id="element-3">
    <h1>Title Here</h1>
  </div>
  <div class="element full" id="element-4">
    <h1>Title Here</h1>
  </div>
</div>

票数 2
EN

Stack Overflow用户

发布于 2020-09-20 18:37:35

如果你想要满的元素总是占据整个页面的宽度,把flex容器放在外面会更容易:

代码语言:javascript
复制
<div class="element full" id="element-1">
  <h1>Title Here</h1>
</div>
<div class="container">
  <div class="element half" id="element-2">
    <h1>Title Here</h1>
  </div>
  <div class="element half" id="element-3">
    <h1>Title Here</h1>
  </div>
</div>
<div class="element full" id="element-4">
  <h1>Title Here</h1>
</div>
票数 0
EN

Stack Overflow用户

发布于 2020-09-20 18:57:05

您可以在元素类中使用float:left,而在容器类中使用display: flex;

代码语言:javascript
复制
.container {
  width:100vw;
  height: auto;
}
.element {
  height: 307px;
  padding: 30px;
  box-sizing: border-box;
  float:left;
}
.full {
  width: 100%;
}
.half {
  width: 50%;
}
#element-1 {
  background-color: pink;
}
#element-2 {
  background-color: wheat;
}
#element-3 {
  background-color: cadetBlue;
}
#element-4 {
  background-color: IndianRed;
}
代码语言:javascript
复制
<div class="container">
  <div class="element full" id="element-1">
    <h1>Title Here</h1>
  </div>
  <div class="element half" id="element-2">
    <h1>Title Here</h1>
  </div>
  <div class="element half" id="element-3">
    <h1>Title Here</h1>
  </div>
  <div class="element full" id="element-4">
    <h1>Title Here</h1>
  </div>
</div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63977859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档