我已经在MVC框架(Codeigniter)中创建了div。
从数据数组中,我遍历“主题”数组并为每个数组制作一个div。我还为每个主题添加了一个标题div和一个内容div。因此,如何使每个主题中标题的背景与colors数组具有不同的颜色。除非主题的数量大于颜色阵列中的颜色数量,否则它们必须不同。
这是循环遍历每个主题的代码:
foreach ($userSubjects as $subject => $info) {
echo "<div class='subject paper'>";
echo "<div class='subjectHeader'>";
echo $info['subject_name'];
echo "</div>";
echo "<div class='subjectContent'>";
echo "</div>";
echo "</div>";
这是randColor数组:
$colorSet = array(
'#1abc9c',
'#2ecc71',
'#3498db',
'#9b59b6',
'#34495e',
'#f1c40f',
'#e67e22',
'#e74c3c',
'#ecf0f1',
'#95a5a6'
);
最佳答案
我认为最好的技巧是使用CSS而不是PHP:
div.subject:nth-child(10n+1) > .subjectHeader { background: #1abc9c}
div.subject:nth-child(10n+2) > .subjectHeader { background: #2ecc71}
div.subject:nth-child(10n+3) > .subjectHeader { background: #3498db}
div.subject:nth-child(10n+4) > .subjectHeader { background: #9b59b6}
div.subject:nth-child(10n+5) > .subjectHeader { background: #34495e}
div.subject:nth-child(10n+6) > .subjectHeader { background: #f1c40f}
div.subject:nth-child(10n+7) > .subjectHeader { background: #e67e22}
div.subject:nth-child(10n+8) > .subjectHeader { background: #e74c3c}
div.subject:nth-child(10n+9) > .subjectHeader { background: #ecf0f1}
div.subject:nth-child(10n+10) > .subjectHeader { background: #95a5a6}
为了使其更易于使用,您可以使用此脚本生成CSS脚本。
<style type="text/css">
<?php
$i = 1;
foreach($colorSet as $c)
{
echo "div.subject:nth-child(".count($colorSet)."n+".$i.") > .subjectHeader { background: ".$c."}";
$i++
}
?>
</style>