根据总迭代次数更改CSS类中的宽度

时间:2019-01-12 19:33:48

标签: php css codeigniter

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

我目前正在使用CodeIgniter框架和引导程序在PHP中创建个人博客。在首页上,我正在制作一个“最近的博客文章”部分,最多包含3个条目,如果我只有1个博客文章,则该框的宽度设置为66,如果我有2个博客文章, width设置为33,如果我有3,则将width设置为22。现在,它为每个循环迭代一个,并为每个迭代创建一个具有相同大小的框。

代码如下:

<?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。 并预先感谢。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

使用php中可用的计数功能...

    if(count($posts) == 2 ){
    // foreach with class you want for 2 element
    }

else if (count($posts) == 3 ){
// foreach with class you want for 3 element
} 

等等...如果您在其他情况下需要其他条件