砌体在它们之间放置了巨大的空间

时间:2015-09-06 11:28:01

标签: javascript html css

砌体存在一个巨大的问题:它会在砌块之间形成一些无用的空间。我已经尝试了一切,但没有任何帮助。如果有人可以告诉我如何解决这个问题,我真的会感到沮丧。检查屏幕截图。Result 更新:我发现,问题始于第一个数字“T-Shirts”。不知何故,当我从那里删除class width-1时,一切都符合它的意思。 为什么会发生这种情况?如何解决这个问题呢?有什么建议?我真的无法删除那个数字,必须有一些方法来适应其他块。请帮忙。

var elem = document.querySelector('.grid');
var msnry = new Masonry( elem, {
  // options
  itemSelector: '.grid-item',
  columnWidth: 230
});

// element argument can be a selector string
//   for an individual element
var msnry = new Masonry( '.grid', {
  // options
});
main 
{
	height: 630px;
	margin-top: 40px;
	margin-left: 18%;
	width: 1500px;
}

figcaption
{
	position: absolute;
	width: 100%;
    height: 41px;
	bottom: 0px;
	padding-top: 13px;
	padding-left: 20px;
    font-size: 21.333px;
    font-family: "SegoeUIBold";
    opacity: 0.8; 
    background-color: #FFF;
}

.grid-item
{
	width: 230px;
	height: 180px;
	margin-right: 10px;
	margin-bottom: 10px;
	float: left;
}
.height-1
{
	height: 370px;
}

.width-1
{
	width: 360px;
}

.width-2
{
	width: 470px;
}

.height-2
{
	width: 360px;
	height: 370px;
}

.width-2 img 
{
	width: 470px;
	height: 180px;
}
<main class="grid">
      <figure class="grid-item height-1 width-1">
        <img src="img/greenTshirt.png" alt="">
        <figcaption>T-Shirts</figcaption>
      </figure>
      <figure class="grid-item">
        <img src="img/cards.png" alt="">
        <figcaption>Cards</figcaption>
      </figure>
      <figure class="grid-item">
        <img src="img/pens.png" alt="">
        <figcaption>Pens &amp; Pencils</figcaption>
      </figure>
      <figure class="grid-item width-2">
        <img src="img/notebooks.png" alt="">
        <figcaption>Notebooks</figcaption>
      </figure>
      <figure class="grid-item">
        <img src="img/toys.png" alt="">
        <figcaption>Toys</figcaption>
      </figure>
      <figure class="grid-item height-1">
        <img src="img/bags.png" alt="">
        <figcaption>Bags</figcaption>
      </figure>
      <figure class="grid-item">
        <img src="img/scrum.png" alt="">
        <figcaption>Scrum cards</figcaption>
      </figure>
      <figure class="grid-item">
        <img src="img/magnets.png" alt="">
        <figcaption>Magnets</figcaption>
      </figure>
      <figure class="grid-item width-1">
        <img src="img/redCaps.png" alt="">
        <figcaption>Caps</figcaption>
      </figure>
      <figure class="grid-item">
        <img src="img/magnets.png" alt="">
        <figcaption>Magnets</figcaption>
      </figure>
      <figure class="grid-item">
        <img src="img/pens.png" alt="">
        <figcaption>Pens &amp; Pencils</figcaption>
      </figure>
      <figure class="grid-item">
        <img src="img/toys.png" alt="">
        <figcaption>Toys</figcaption>
      </figure>
  </main>

1 个答案:

答案 0 :(得分:0)

你缺少imagesLoaded。

示例:

// init Masonry
var $grid = $('.grid').masonry({
  // options...
});
// layout Masonry after each image loads
$grid.imagesLoaded().progress( function() {
  $grid.masonry('layout');
});