php - 根据总迭代次数更改我的 css 类中的宽度
问题描述
我希望你们有一个愉快的夜晚。
我目前正在使用 CodeIgniter 框架和引导程序在 PHP 中创建我的个人博客。在首页上,我正在制作一个最多包含 3 个条目的“最近的博文”部分,我想这样做,如果我只有 1 篇博文,则框的宽度设置为 66,如果我有 2 篇博文宽度设置为 33,如果我有 3,则宽度设置为 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。并提前感谢。
解决方案
您可以只使用count()
检查帖子的数量和一些 if(?:
在这种情况下使用速记)将其转换为宽度......
$numberPosts = count($posts);
$width = ($numberPosts==1)?66:(($numberPosts==2)?33:22);
推荐阅读
- python - 如何在使用 asyncio 编写的多客户端聊天应用程序中加密消息
- html - 在固定 div 上滚动无法正常工作
- visual-studio-2019 - 在 Visual Studio 源代码中可以将列表数据显示为表格
- spring-boot - 为什么查询结果映射为 COUNT(*) 的空值?
- python - 如何使用python从网格坐标中提取沿水平和垂直的最大值?
- python - wxPython 应用程序没有响应
- android - 检测眨眼算法
- python-3.x - 在for循环外获取变量值
- python - 从字符串中提取日期并将数据框提取到新列python中
- flutter - 颤振 | 重定向到屏幕时如何显示当前数据表中的记录