在php for循环中操作样式

时间:2016-09-15 22:28:31

标签: php

我试图在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>

2 个答案:

答案 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;