我正在使用波旁及其附带的网格框架整洁地创建一个网站,并希望将砌体整合到布局区域以显示新闻文章。使用砌体布置物品
我想我已经把所有东西都设置了正确,但是看起来砌体的计算有些偏离,因为应该并排坐的物品只是将一个物品叠放在另一个下面。
对于我的布局,我使用Neat的标准@include span-columns()
mixin以及文章元素上的flexbox,以便我可以在文章中布局元素。
我已经包含了grid-sizer
“助手” DIV允许砌体了解每列应该多大,按砌筑文档,所以我的HTML标记如下:
<div class="o-row">
<div class="o-contain">
<div class="news__listing js-articles">
<div class="u-grid-sizer js-grid-sizer"></div>
<article <?php post_class('c-article c-article--listed js-articles__item'); ?>>
<header class="c-article__header">
<?php if (has_post_thumbnail()) {
$image = wp_get_attachment_image_src(get_post_thumbnail_id(get_the_ID()), 'large'); ?>
<img class="c-article__image" src="<?php echo $image[0]; ?>" alt="<?php the_title(); ?>" />
<?php } ?>
<h2 class="c-article__title"><?php the_title(); ?></h2>
</header>
<div class="c-article__summary s-cms-content">
<?php the_excerpt(); ?>
</div>
<footer class="c-article__footer">
<a class="c-button c-button--gamma" href="<?php the_permalink(); ?>">Read blog post</a>
</footer>
</article>
</div>
<div class="news__sidebar c-sidebar">
<?php get_sidebar(); ?>
</div>
</div>
</div>
的CSS我“同时使用父容器和物品M上本身如下:
.news__listing {
@include media($m-up) {
@include span-columns(8);
@include omega(2n);
}
}
.c-article {
.news__listing & {
margin-bottom: $space;
@include media($m-up) {
@include span-columns(6);
@include omega(2n);
@include display(flex);
@include flex-direction(column);
@include flex-shrink(0);
}
}
}
.u-grid-sizer {
.news__listing & {
@include media($m-up) {
@include span-columns(6);
@include omega(2n);
}
}
}
和JS用于调用和执行砌体是简单地:
jQuery(document).ready(function($) {
$('.js-articles').masonry({
columnWidth: '.js-grid-sizer',
itemSelector: '.js-articles__item'
});
});
我是否在做任何明显错误的事情?如果我从我的标记中删除js-articles
类,那么文章元素就会正确排列,只要它们在页面上显示为两页,尽管在每行“文章”下面都有大量边距,这正是我试图使用的砌体删除。
你有没有想过这个? –