我有css课程,我不想添加到每个li标签中。它应该添加到一个li中,然后li应该是空的等等......
我尝试添加
例如
<?php
$css_class = 'class="pull_rigt"';
echo "<ul>";
foreach($posts as $key => $value ) {
echo "<li $css_class>";
echo $value['data'];
echo "</li>";
}
echo "<ul>";
?>
输出应为
<li class="pull_rigt">
data
<li>
<li>
data
</li>
我尝试在每个foreach索引中匹配两个数字的幂,但无法计算出数学。
<?php
$css_class = 'class="pull_rigt"';
echo "<ul>";
$i = 0;
foreach($posts as $key => $value ) {
<li <?php echo ($i & ($i - 1)) == 0 ? $css_class; ?>
echo $value['data'];
echo "</li>";
$i++;
}
echo "<ul>";
?>
答案 0 :(得分:3)
如果你的li
一个接一个地出现,你不一定要添加一个类来应用这种公式样式,你可以根据它们是odd
还是{{1来设置它们的样式使用以下CSS:
even
或
li:nth-of-type(odd){}
li:nth-of-type(even){}
&#13;
li:nth-of-type(odd) {
color: red;
}
&#13;
答案 1 :(得分:3)
最简单的解决方案可能是使用nth-child selector,因此您根本不需要使用任何类。
或者,在PHP中使用%运算符 - 它表示“除以某个数字后的余数”。 foreach循环可能如下所示:
foreach ($posts as $key=>$value) {
echo "<li"
if ($key % 2 == 1) { // For $key 1, 3, 5, 7...
echo " ".$css_class;
}
echo ">";
echo $value["data"];
echo "</li>";
}
使用不同的操作数来获得不同的结果,即$key % 3 == 2
对于$ key 2,5,8等是真实的。
答案 2 :(得分:1)
我使用模数运算符%
来做这些事情。
http://php.net/language.operators.arithmetic
对于简单的偶数/奇数评估:
偶: $num % 2 == 0
奇怪: $num % 2 == 1
以下是基于您的代码的独立示例:
<?php
// Test Data
$posts = array();
for ($i = 0; $i < 10; $i++) {
$posts[] = array('data' => $i);
}
echo '
<style type="text/css">
.pull_rigt {
color: red;
}
</style>';
// UL
echo "<ul>";
$i = 0;
foreach($posts as $key => $value ) {
$class = ($i % 2 == 0) ? ' class="pull_rigt"' : ''; // Even Numbers
#$class = ($i % 2 == 1) ? ' class="pull_rigt"' : ''; // Odd Numbers
echo "<li{$class}>";
echo $value['data'];
echo "</li>";
$i++;
}
echo "<ul>";
?>
您可以在此处看到它:http://viper-7.com/t0jUn1