我想在a.container的左侧有一个简介部分,在右侧有一个侧栏。
.intro部分下面的左侧,我希望有四个div像网格一样等距分布。
我在设置“网格”时遇到了问题。我认为问题的一部分是父对象有一些影响子对象的flexbox属性。
要求:简介部分应在.left-side中居中,而“网格”不应居中。方框应占用足够的空间,以便在两个空格之间的行中容纳2个。.intro应该是左侧宽度的80%。
我不想对结构做任何重大更改这只是我的项目设置的一个小示例。

.container{
  width: 80%;
  margin: 0 auto;
  display: flex;
}
.left-side{
  flex:8;
  display: flex;
  justify-content:center;
  flex-wrap: wrap;
}
.side-bar{
  flex: 2;
  height: 100vh;
  background: powderblue;


}
.intro{
  flex:3;
  width:80%;
  height: 300px;
  background: skyblue;
}

.box{
  background: red;
  width: 45%;
  height: 100px;
  flex:4;
  border:1px solid orange;
}

<div class="container">
  <div class="left-side">
    <div class="intro">
      intro
    </div>
    <div class="recent">
      <div class="box">1</div>
      <div class="box">2</div>
      <div class="box">3</div>
      <div class="box">4</div>
    </div>
  </div>
  <div class="side-bar">
    sidebar
  </div>

html - 居中 flex 元素下的flexbox网格-LMLPHP

最佳答案

Flex项也可以是Flex容器。这使您能够在更大的容器中使用flex-direction: rowcolumn嵌套多个容器。
对于布局,可以构建一个由两个flex项组成的列。第一项(.intro)的宽度为80%,可以水平居中。第二个项(.recent)可以是一个flex容器,其中四个项排列在2x2网格中。

.container {
    width: 80%;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    height: 100vh;
}
.left-side {
    flex: 4;
    display: flex;
    flex-direction: column;
}
.side-bar {
    flex: 1;
    background: powderblue;
}
.intro {
    flex: 3;
    height: 300px;
    width: 80%;
    margin: 0 auto;
    background: skyblue;
}
.recent {
    display: flex;
    flex-wrap: wrap;
    background-image: url("http://i.imgur.com/60PVLis.png");
    background-size: contain;
}
.box {
    margin: 5px;
    flex-basis: calc(50% - 10px);
    height: 100px;
    box-sizing: border-box;
    background: red;
}

body { margin: 0; }

<div class="container">
    <div class="left-side">
        <div class="intro">intro</div>
        <div class="recent">
            <div class="box">1</div>
            <div class="box">2</div>
            <div class="box">3</div>
            <div class="box">4</div>
        </div>
    </div>
    <div class="side-bar">
        sidebar
    </div>
</div>

07-26 00:17
查看更多