php - 根据总迭代次数更改我的 css 类中的宽度

标签 php css codeigniter

希望大家度过一个愉快的夜晚。

我目前正在使用 CodeIgniter 框架和 Bootstrap 在 PHP 中制作我的个人博客。在首页上,我正在制作一个最多包含 3 个条目的“最近的博文”部分,我想这样做,如果我只有 1 个博文,则框的宽度设置为 66,如果我有 2 个博文宽度设置为 33,如果我有 3,则宽度设置为 22。现在它遍历一个 for each 循环,并为每次迭代创建一个大小相同的框。

代码如下所示:

<?php
$i = 1;
$width = 22.3;
foreach ($posts as $post) { ?>
    <div class="card text-white bg-primary mb-3 float-left"
         style="width: <?php echo ($width) ?>rem;margin-left: 10px;">
        <div class="card-header"><?php echo $post['created_at']; ?> <i class="em em-memo" style="float:right;"></i>
        </div>
        <div class="card-body">
            <h4 class="card-title"><?php echo $post['title']; ?></h4>
            <p class="card-text"><?php

                if (strlen($post['body']) <= 150) {
                    echo $post['body'];
                } else {
                    $y = substr($post['body'], 0, 150) . '...';
                    echo $y;
                }

                ?></p>
            <a class="btn btn-primary btn-lg" href="<?php echo site_url('/posts/' . $post['slug']); ?>" role="button">Læs
                mere</a>
        </div>
    </div>
<?php if ($i++ == 3) break; ?>
<?php } ?>

我希望我已经很好地解释了我的情况 :P。 提前致谢。

最佳答案

您可以只使用 count() 来检查帖子的数量和一些 if(在这种情况下使用速记 ?:)将其转换为宽度...

$numberPosts = count($posts);
$width = ($numberPosts==1)?66:(($numberPosts==2)?33:22);

关于php - 根据总迭代次数更改我的 css 类中的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54163176/

相关文章:

php - 如何命名使用创建的新 id 记录上传的文件

php - 选择所有元素直到 - XPath

具有非唯一键的 PHP 关联数组

php - 源码与 "inspect element"的区别

javascript - 如何使用 jquery 永久添加元素,然后它会逐渐添加数字,例如 Cam 1、Cam 2、Cam 3 等。使用 iframe

javascript - v-for 的自定义样式

javascript - 如果我的表单的一个 div 可见,那么另一个 div 的值将被重置

javascript - 在多个 Div Id 上使用 javascript

javascript - 当使用ajax在codeigniter中刷新页面时插入购物车

php - CodeIgniter - 如何动态获取所有 Controller 的列表?