使用PHP循环将Bootstrap行和正确的列号添加到元素
发布时间:2020-12-13 13:53:12 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试使用 PHP循环和Twitter Bootstrap的12列网格系统创建以下前端: HTML输出是: div class="row" div class="col-lg-4" Content... /div div class="col-lg-4" Content... /div div class="col-lg-4" Content... /div/divdiv class="row" div class=
我正在尝试使用
PHP循环和Twitter Bootstrap的12列网格系统创建以下前端:
HTML输出是: <div class="row"> <div class="col-lg-4"> Content... </div> <div class="col-lg-4"> Content... </div> <div class="col-lg-4"> Content... </div> </div> <div class="row"> <div class="col-lg-4"> Content... </div> <div class="col-lg-4"> Content... </div> <div class="col-lg-4"> Content... </div> </div> <div class="row"> <div class="col-lg-6"> Content... </div> <div class="col-lg-6"> Content... </div> </div> 在PHP(WordPress)中,我将每3个项目包装在.row div中: <?php $i=0; // counter ?> <?php while ( have_posts() ) : the_post(); ?> <?php if ($i%3==0) { // if counter is multiple of 3 ?> <div class="row"> <?php } ?> <div class="col-md-4"> Content... </div> <?php $i++; ?> <?php if($i%3==0) { // if counter is multiple of 3 ?> </div> <?php } ?> <?php endwhile; ?> <?php if($i%3!=0) { // put closing div if loop is not exactly a multiple of 3 ?> </div> <?php } ?> 问题: 我不知道如何将最合适的列号添加到最后一行中的项目,以便它们填充12列网格. 例如,在我的上图中,最后一行中的每个项目都有col-6(扩展6列),填充了12个网格系统.另一个例子,如果最后一行有1个项目,它应该有col-12. 注意:每行最多有3个项目,如图所示和PHP中所示. 我知道以下内容: >项目总数$loop-> post_count 题: 如何在上面的PHP中使用该数据来更改最后一行中项目的列号,以便它们将填充12个网格(使它们居中)?
我喜欢你的问题,因为我正在处理一个非常相似的情况.由于其他答案有点长,我决定把我的留在这里供你考虑.对我来说,你使用的变量越少,解决方案就越好.
BootstrapContentArranger.php <?php function BootstrapContentArrange($i) { $items = $i; // qnt of items $rows = ceil($items/3); // rows to fill $lr = $items%3; // last row items $lrc = $lr; // counter to last row while ($items > 0) { // while still have items $cell = 0; if ($rows > 1) { // if not last row... echo '<div class="row">'.PHP_EOL; while ($cell < 3) { // iterate with 3x4 cols echo '<div class="col-md-4">Content</div>'.PHP_EOL; $cell++; } echo "</div>".PHP_EOL; $rows--; // end a row } elseif ($rows == 1 && $lr > 0) { // if last row and still has items echo '<div class="row">'.PHP_EOL; while ($lrc > 0) { // iterate over qnt of remaining items $lr == 2 ? // is it two? print('<div class="col-md-6">Content</div>'.PHP_EOL) : // makes 2x6 row print('<div class="col-md-12">Content</div>'.PHP_EOL); // makes 1x12 row $lrc--; } echo "</div>".PHP_EOL; break; } else { // if round qnt of items (exact multiple of 3) echo '<div class="row">'.PHP_EOL; while ($cell < 3) { // iterate as usual echo '<div class="col-md-4">Content</div>'.PHP_EOL; $cell++; } echo "</div>".PHP_EOL; break; } $items--; // decrement items until it's over or it breaks } } 测试用例 BootstrapContentArrange(3); BootstrapContentArrange(11); BootstrapContentArrange(1); > 3项,输出: <div class="row"> <div class="col-md-4">Content</div> <div class="col-md-4">Content</div> <div class="col-md-4">Content</div> </div> > 11项,产出: <div class="row"> <div class="col-md-4">Content</div> <div class="col-md-4">Content</div> <div class="col-md-4">Content</div> </div> <div class="row"> <div class="col-md-4">Content</div> <div class="col-md-4">Content</div> <div class="col-md-4">Content</div> </div> <div class="row"> <div class="col-md-4">Content</div> <div class="col-md-4">Content</div> <div class="col-md-4">Content</div> </div> <div class="row"> <div class="col-md-6">Content</div> <div class="col-md-6">Content</div> </div> >单个项目,输出: <div class="row"> <div class="col-md-12">Content</div> </div> 注意:你可以删除PHP_EOL,我用它来更好地阅读源代码. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |