物化网格的高度不等

时间:2018-01-17 15:10:22

标签: css css3 flexbox materialize

我有一个使用Materialise构建的网格系统,其中cols的高度不等(动态内容)。

每行应该有3个cols。我希望每一行都从一个新行开始。但是,这是我得到的结果 - https://codepen.io/anon/pen/QaVKyG。正如你所看到的,第四张卡似乎从一个奇怪的地方开始,在左边留下了很多空白区域。

我已尝试使用此处显示的flexbox - https://codepen.io/anon/pen/rpqLgy

.row { display:flex; flex-wrap: wrap; }

但是,这种方法的问题是最后一行的cols似乎没有对齐左边。

简而言之,我希望网格的工作方式与使用bootstrap时的方式相同(例如https://codepen.io/anon/pen/vpVvKv)。正如您所看到的,对于bootstrap,下一行的cols从下一行开始,即使cols具有不相等的高度。我无法通过Materialise实现这一目标。

感谢任何解决方案的任何帮助(使用flexbox或没有flexbox)。谢谢!

2 个答案:

答案 0 :(得分:1)

我不确定这是否是你想要实现的目标..

我做的是创建一个cardHolder,然后在里面创建卡片

<div class="cardHolder">
  <div class="card"></div>
  <div class="card2"></div>
  <div class="card3"></div>
</div>

然后我为卡片的父母做了一个弹性框样式..

.cardHolder{
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
  flex-flow: row wrap;
  width:100%;
}

之后我设置卡片的宽度,因为你希望每行有3列。我做了一个calc函数来初始化卡片的宽度

.cardHolder div{
  width:calc(100% / 3);
  padding:0;
  margin:0;
}

然后创建媒体查询,以在屏幕尺寸小于600像素时初始化卡片的整个宽度。

@media only screen and (max-width: 600px){
  .cardHolder div{
   width:100%; 
  }
}

请参阅示例代码的链接.. https://codepen.io/deibu21/pen/jYedep/?editors=1100

希望这有帮助。

答案 1 :(得分:0)

您也可以使用相同的max-height和min-height.Ex-

.card{
     border:1px solid black; 
     min-height:450px; 
     max-height:450px
     }

这将使您的卡大小相同并对齐。