转换变量来编写CSS

nov*_*lsi 0 css php casting

所以,我正在制作一张桌子,我想使用从一组10个方案中随机选择的4色方案.

这是我的CSS/PHP:

<?php header('Content-type: text/css');

 // 0   grey
$color00 = '#959595';       //light grey
$color10 = '#616161';       //medium grey
$color20 = '#414141';       //dark grey
$color30 = '#dfdfdf';       //white grey
//  1   pink 
$color01 = '#e45494';       //light pink
$color11 = '#d70060';       //medium pink
$color21 = '#900040';       //dark pink
$color31 = '#f7ccdf';       //white pink
//  2   red 
$color02 = '#ee576f';       //light red
$color12 = '#e50428';       //medium red
$color22 = '#9a031b';       //dark red
$color32 = '#facdd4';       //white red
//  3   orange 
//(etc, up to 09-39)

$seed   =   rand(0,9);

$lightcolor = "color0".$seed;
$medcolor   = "color1".$seed;
$darkcolor  = "color2".$seed;
$whitecolor = "color3".$seed;

?>


#wttbl{
border:0;
border-collapse:collapse;
cellpadding:3;
width:500px;
font-family:Verdana;
font-size:9px;
}

#wttbl td, #wttbl th{
padding: 4px;   
}

#wttbl #header{
background:<?="$lightcolor"?>;  
}

#wttbl td{
text-align:right;
color:#414141;
}

#wttbl .odd{
background:<?="$color33"?>;
}

#wttbl .even{

}

#wttbl tr:hover{
background:<?="$color03"?>;
} 

#wttbl td:hover{
background:<?="$color23"?>;
color:white;     
}
Run Code Online (Sandbox Code Playgroud)

问题是,硬编码之类的东西

#wttbl .odd{ background:<?="$color33"?>; }
Run Code Online (Sandbox Code Playgroud)

似乎工作,并在我的代码中回应正确的CSS颜色,而事情就像

#wttbl #header{ background:<?="$lightcolor"?>; }
Run Code Online (Sandbox Code Playgroud)

将"color03"回显到标签中.

我做错了什么,我该如何解决?

zer*_*kms 5

您需要使用数组:

$color = array(
    array('#959595', '#616161', ...),
    array('#e45494', '#d70060', ...)
);

$lightcolor = $color[$seed][0];
Run Code Online (Sandbox Code Playgroud)

不,变量变量永远不是一个好主意,即使会有几个答案提到它们.