我有一个用户列表,每个用户都用div包装,这样
<div class="users">
<div>user 1 content</div>
<div>user 2 content</div>
<div>user 3 content</div>
<div>user 4 content</div>...
</div>
然后所有这些都以这种方式显示:
1 2 3
4 5 6
7 8 9
10 11 12
13 14 15
...... and so on
divs数字 1,4,7,10 .. 应该有一个名为 class_left 的类,例如 div数 2,5,8,11,14 .. 应该有一个名为 class_center 的类, divs数字 3,6,9,12,15 ...... 应该有一个名为 class_right 的类
我不太清楚该怎么做。 谢谢。
答案 0 :(得分:1)
您只需使用modulus
运算符3即可完成此操作。
这是一个伪代码:
if(div_number % 3 ==1)
class = class_left;
else if(div_number % 3 == 2)
class = class_center;
else
class=class_right;
答案 1 :(得分:1)
我不知道你是如何使用你的代码的,但你可以用这种方式使用模数运算符:如果列号模数3是1那么你在左边,否则如果结果是2你就是在中心,否则结果等于0,你就在右边。
答案 2 :(得分:1)
假设$data
是您的数据数组:
<?php $aligns = array('right', 'left', 'center'); ?>
<div class="users">
<?php foreach($data as $key => $value): ?>
<div class="class_<?php echo $aligns[$key % 3]; ?>">
<?php var_dump($value); ?> // User X's Content
</div>
<?php endforeach; ?>
</div>
答案 3 :(得分:0)
试试这个:
$i = 1;
$last = 100;
for ($i =1; $i<$last; $i=+3) {
echo "<div class='class_left'>user ".$i." content</div>";
echo "<div class='class_center'>user ".($i+1)." content</div>";
echo "<div class='class_right'>user ".($i+2)." content</div>";
}
或者如果你想要一个能取数字并返回类名的函数,你应该尝试类似的东西:
function getClass($num) {
if (!$num % 3) {
return 'class_right';
}
if (!($num + 1) % 3) {
return 'class_center';
}
if (!($num + 2) % 3) {
return 'class_left'
}
}
答案 4 :(得分:0)
也许这样试试:
var curr = 0;
users.forEach(user){
curr++;
switch(curr){
case 1:
user.class = 'class_left';
case 2:
user.class = 'class_center';
case 3:
user.class = 'class_right';
curr = 0;
}
}
这只是一个javascript示例。请使用您的语言。
答案 5 :(得分:0)
此代码适用于每行任意数量的div
个元素。 (如果您将$divsPerRow
设置为2,则不会使用class_center
。如果将其设置为1,则class_right
也不会。{/ p>
$divsPerRow = 3;
$users = range(1, $divsPerRow * 3);
echo '<div class="users">' . PHP_EOL;
for ($i = 0; $i < count($users); $i++) {
$class = "left";
$column = $i % $divsPerRow + 1;
if ($column > 1) {
$class = ($column == $divsPerRow) ? "right" : "center";
}
echo '<div class="class_' . $class . '">user ' . $users[$i]
. ' content</div>' . PHP_EOL;
}
echo '</div>' . PHP_EOL;
答案 6 :(得分:-1)
您在寻找的是:
(i-1)%3 == 0