【问题标题】:Masonry places blocks with huge spaces between them砌体放置块之间有巨大的空间
【发布时间】:2015-12-02 02:05:48
【问题描述】:

砌体存在一个巨大的问题:它会在块之间产生一些无用的空间。我已经尝试了一切,但没有任何帮助。如果有人能告诉我如何解决这个问题,我真的很感激。检查截图。Result 更新:我发现问题始于第一个数字“T恤”。不知何故,当我从那里删除 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>

【问题讨论】:

  • 没有图像很难看出问题,但我认为问题在于图像没有 100% 的宽度。试试 .grid-item img {width: 100%;浮动:左;}
  • 好吧,我添加了指向图片的链接,在那里可以看到哪里出了问题。我只是无法在此处添加图片,因为我还没有足够的声望点。
  • 您可以尝试使用 [lorempixel.com](lorempixel.com) 以获得更好的想法
  • 如果我们能看到现场结果,那就太好了。

标签: javascript html css


【解决方案1】:

您缺少已加载的图片。

示例:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    • 2018-03-31
    相关资源
    最近更新 更多