响应循环,行内有3列,然后是2列

时间:2020-06-09 作者:Mathieu Préaud

我在存档页面中创建了一个循环,在一行中以3列(33%宽度)的形式显示帖子,行的宽度为100%。每一列都是一篇文章。

我想要实现的是使循环对于较小屏幕更加灵活:平板电脑的行容器中有2列50%,然后是手机的1列100%。我的主要问题是,我需要行容器中的帖子。所以应该是:一行有3列,然后一行有2列,一行有1列。

这是循环的代码:

<!-- Start the Loop -->
<div class="row">
<?php while ( have_posts() ) : the_post(); ?>

  <?php get_template_part( \'template-parts/content\', \'archive\' ); ?>

  <?php if( $wp_query->current_post % 3 == 2 ) : ?>

 </div>
 <!-- row -->

 <div class="row">
 <?php endif; ?>

<?php endwhile; ?>
任何帮助都将不胜感激,谢谢!

1 个回复
SO网友:mrcodefinger

您可以通过CSS中的媒体查询来控制这一点。

@media screen and (max-width: 768px) { div.row { width: 50%; } } /* for iPad */

@media screen and (max-width: 600px) { div.row { width: 100% } } /* for mobile phones */
我希望这有帮助。

UPDATE:使用PHP无法做到这一点,因为PHP是在内容传递到浏览器之前在服务器上执行的,因此PHP没有时间确定使用的是哪个设备或视口。看一看here.