1

我的 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;
}

所以基本上,最好的解决方案是什么?

4

1 回答 1

2

您需要将标题从 Masonry 插件中取出,#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,
    });
});
于 2013-11-08T16:50:41.777 回答