我试图在php for循环中为一些div添加一些样式。对于每个替代迭代,位置样式设置为'left: 0%' or 'left:53.8462%'
,这似乎正在起作用。但我无法弄清楚如何设置顶级风格。对于每个连续的two iterations
,顶部样式的值增加342px
,而初始值设置为0px。换句话说,对于第一个和第二个循环,顶部样式值是0px,但在第二次和第三次迭代中,它们的值增加342px,依此类推。所需的html输出如下所示。
在以下代码中,此部分echo ($counter % 6 == 1 ? 'top: 0px;' : 'top: 342px;');
需要更改。
<?php $counter = 1; ?>
<?php for ($i = 0; $i < 4; $i++): ?>
<div class="card" style="position: absolute;
<?php echo ($i%2 ? 'left: 53.8462%;' : 'left: 0%;'); echo ($counter % 6 == 1 ? 'top: 0px;' : 'top: 342px;');?>">
// content //
<?php $counter++; ?>
<?php endfor;
?>
这是所需的html输出:
<div class="card" style="position: absolute; left: 0%; top: 0px;">
</div>
<div class="card" style="position: absolute; left: 53.8462%; top: 0px;">
</div>
<div class="card" style="position: absolute; left: 0%; top: 342px;">
</div>
<div class="card" style="position: absolute; left: 53.8462%; top: 342px;">
</div>
<div class="card" style="position: absolute; left: 0%; top: 684px;">
</div>
<div class="card" style="position: absolute; left: 53.8462%; top: 684px;">
</div>
答案 0 :(得分:1)
如果您在$counter
开始0
会更容易。然后顶部只是计数器的一半乘以384
。
在这种情况下,$counter
与$i
相同,因此不需要两个变量。
<?php for ($i = 0; $i < 4; $i++): ?>
<div class="card" style="position: absolute;
<?php echo ($i%2 ? 'left: 53.8462%;' : 'left: 0%;'); echo 'top: ' . floor($i/2)*384 . 'px;';?>">
// content //
<?php endfor;
?>
答案 1 :(得分:0)
将$ top设为:
$top = floor (($i -1) / 2) * 342;