【发布时间】:2014-08-09 10:41:38
【问题描述】:
目标
拥有一个正常运行的“pinterest 风格”布局。
背景
我之前用 Masonry 创建了一个博客概念,布局非常流畅。为了展示它应该如何工作,我发布了This video on youtube
我有我的 original conceptual demo on codepen,它使用了 Foundation 5。
然后我分叉了这个broken demo in question - on codepen。
但是如果我删除 Foundation 5 它将不起作用。但这真的很奇怪,因为 HTML 中的任何地方都没有基础类。
问题
这根本不应该依赖 Foundation 5。当我删除外部 Foundation 5 文件时,容器会浮动到任一侧。
即使浏览器窗口可容纳更多内容,布局也会变为每列单个项目。
当前状态
它可以工作,但不应依赖于 Foundation。
代码
HTML
<div id="gallery-content" class="clearfix">
<!-- Case 1 -->
<div class="case-box item">
<img src="http://ships.bouwman.com/Planes/Boeing---X-48B.jpg" />
<div class="case-country country-us"></div>
<div class="case-description">
<p>Boeing Blended Wing X-48B</p>
</div>
<div class="case-options">
<a href="#">Details<i class="fa fa-arrows-alt"></i></a>
</div>
</div>
<!-- many more containers then closed off by #gallery-content div -->
CSS
Foundation 5 的 CSS 来自 CDNJS。
//cdnjs.cloudflare.com/ajax/libs/foundation/5.1.1/css/foundation.min.css
还有我写的这段代码
#gallery-content {
width: auto;
margin: 0 auto;
}
.item {
display: block;
float: left;
width: 300px;
margin: 0 20px 20px 0;
-webkit-transition: left .4s ease-in-out, top .4s ease-in-out .4s;
-moz-transition: left .4s ease-in-out, top .4s ease-in-out .4s;
-ms-transition: left .4s ease-in-out, top .4s ease-in-out .4s;
-o-transition: left .4s ease-in-out, top .4s ease-in-out .4s;
transition: left .4s ease-in-out, top .4s ease-in-out .4s;
}
.item img { width: 300px; height: auto; }
.case-box {
border: #888 1px solid;
padding-bottom: 72px;
position: relative;
}
.case-box {
-webkit-border-top-left-radius: 2px;
-webkit-border-top-right-radius: 2px;
-moz-border-radius-topleft: 2px;
-moz-border-radius-topright: 2px;
border-top-left-radius: 2px;
border-top-right-radius: 2px;
}
.clearfix:before, .clearfix:after { content: ""; display: table; }
.clearfix:after { clear: both; }
.clearfix { *zoom: 1; }
JavaScript
jQuery
来自 CDNJS 的砌体
//cdnjs.cloudflare.com/ajax/libs/masonry/3.1.2/masonry.pkgd.min.js
还有这段代码
$(document).ready(function() {
// Initialize Masonry
$('#gallery-content').masonry({
columnWidth: 320,
itemSelector: '.item',
isFitWidth: true,
isAnimated: !Modernizr.csstransitions
}).imagesLoaded(function() {
$(this).masonry('reload');
});
});
【问题讨论】:
-
大概有一个覆盖浏览器默认设置的基础重置。没有实时链接很难诊断
-
@user574632 包含 3 个指向它的链接,但它又来了。 http://codepen.io/JGallardo/pen/BuCbn
标签: javascript html css jquery-masonry