在php for循环中操作样式
问题描述:
我想在php for循环中为某些div添加一些样式。对于每个替代迭代,位置样式设置为'left: 0%' or 'left:53.8462%'
,这似乎正在工作。但我无法弄清楚如何设置顶级风格。对于每个连续的two iterations
,顶部样式的值增加342px
,而初始值设置为0px。换句话说,对于第一个和第二个循环,top样式值为0px,但在第二次和第三次迭代中,它们的值会增加342px等等。所需的html输出如下所示。在php for循环中操作样式
在下面的代码中,这部分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
开始$counter
会更容易些。然后,顶部只是柜台的一半乘以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;
?>
+0
嗨巴尔马,很高兴你花时间阅读和解决我的问题。很高兴有你! –
答
设置$顶部为:
$top = floor (($i -1)/2) * 342;
难道这就是在6次迭代包回到0? – Barmar
如果您在'0'而不是'1'处开始计数,则使用模数通常更容易。 – Barmar
@Barmar,它不应该继续顶部像素高度,但最初的顶部是0 –