我的JQuery Masonry网格与我的标题重叠。

<div name="top" id="container">
    <h2>Title</h2>
    <div class="item">
        <h3>1</h3>
        <p></p>
    </div>
    <div class="item">
        <h3>2</h3>
        <p></p>
        <p></p>
    </div>
    <div class="item">
        <h3>3</h3>
        <p></p>
    </div>
    <div class="item">
        <h3>4</h3>
        <p></p>
        <p></p>
    </div>
    <div class="item">
        <h3>5</h3>
        <p></p>
    </div>
</div>


我的CSS:

#container {
position:relative;
left:28%;
width:69%;
}

.item {
width:200px;
float:left;
background: #fff;
}


在头部:

<!--Jquery functions-->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script language="javascript" type="text/javascript" src="<?php bloginfo('template_url'); ?>/jquery.masonry.min.js"></script>
<script type="text/javascript">    // This block will be put in a separate file later on (JQuery.js)
$(document).ready(function() {
   var $container = $('#container');
   //$container.imagesLoaded(function(){
      $container.masonry({
         itemSelector: '.item',
         isAnimated: true,
      });
   //});
});
</script>
// ...
<?php wp_head(); ?>
</head>


我应该总是将标题放在div前面吗?像这样:

<h2>Title</h2>
<div name="top" id="container">


还是我的标题中缺少CSS?

h2 {
color:#751D24;
font:5em 'open sans', sans-serif;
font-weight:bold;
letter-spacing:-.05em;
line-height:.5em;
margin:3.5% 0 2%;
text-shadow:1px 1px 1px #fff;
}


因此,基本上,什么是最佳解决方案?

最佳答案

您需要从#container中删除​​标题,因为Masonry插件将.item元素绝对定位在您指定的容器内。

您可以像这样更改代码:

的HTML

<div name="top" id="container">
    <h2>Title</h2>

    <div id="masonry-container">
        <div class="item">
            <h3>1</h3>
            <p>text</p>
        </div>
    </div>
</div>


jQuery查询

var $container = $('#masonry-container');
$container.imagesLoaded(function(){
    $container.masonry({
       itemSelector: '.item',
       isAnimated: true,
    });
});

10-04 22:07
查看更多