如果通过for循环,我怎么能避免以下情况? 另外,如何在运行时生成css .. ??
if ($string == 12 && $string1==23) $style="r16";
if ($string == 34 && $string1==45) $style="r17";
if ($string == 45 && $string1== 56 ) $style="r18";
if ($string == 56 && $string1== 67) $style="r19";
if ($string == 67 && $string1== 78 ) $style="r20";
if ($string == 78 && $string1== 89 ) $style="r21";
if ($string == 89 && $string1== 910) $style="r22";
if ($string == 910 && $string1== 1011) $style="r23";
if ($string == 1011 && $string1== 1112) $style="r24";
if ($string == 1112 && $string1== 1213) $style="r25";
if ($string == 1213 && $string1==1314 ) $style="r26";
if ($string == 1314 && $string1==1415 ) $style="r27";
if ($string == 1415 && $string1==1516 ) $style="r28";
if ($string == 1516 && $string1==1617 ) $style="r29";
需要CSS ..如下:
.r16{ text-align: left;padding-left: 100px; border: solid 1px #CCCCCC; margin: 10px 490px 0px 285px; }
.r17{ text-align: left;padding-left: 100px; border: solid 1px #CCCCCC; margin: 10px 490px 0px 285px; }
.r18{ text-align: left;padding-left: 100px; border: solid 1px #CCCCCC; margin: 10px 490px 0px 285px; }
.r19{ text-align: left;padding-left: 100px; border: solid 1px #CCCCCC; margin: 10px 490px 0px 285px; }
.r20{ text-align: left;padding-left: 100px; border: solid 1px #CCCCCC; margin: 10px 490px 0px 285px; }
.r21{ text-align: left;padding-left: 100px; border: solid 1px #CCCCCC; margin: 10px 490px 0px 285px; }
.r22{ text-align: left;padding-left: 100px; border: solid 1px #CCCCCC; margin: 10px 490px 0px 285px; }
.r23{ text-align: left;padding-left: 100px; border: solid 1px #CCCCCC; margin: 10px 490px 0px 285px; }
.r24{ text-align: left;padding-left: 100px; border: solid 1px #CCCCCC; margin: 10px 490px 0px 285px; }
.r25{ text-align: left;padding-left: 100px; border: solid 1px #CCCCCC; margin: 10px 490px 0px 285px; }
.r26{ text-align: left;padding-left: 100px; border: solid 1px #CCCCCC; margin: 10px 490px 0px 285px; }
.r27{ text-align: left;padding-left: 100px; border: solid 1px #CCCCCC; margin: 10px 490px 0px 285px; }
.r28{ text-align: left;padding-left: 100px; border: solid 1px #CCCCCC; margin: 10px 490px 0px 285px; }
.r29{ text-align: left;padding-left: 100px; border: solid 1px #CCCCCC; margin: 10px 490px 0px 285px; }
答案 0 :(得分:2)
您可以使用数组删除if
:
$styles = array('12,23' => 'r16',
'34,45' => 'r17',
...
'1516,1617' => 'r29'
);
if (isset($styles["$string,$string1"])) {
$style = $styles["$string,$string1"];
}
您也可以使用此数组生成CSS。使值包含类名和CSS的关联数组,例如
$styles = array('12,23' => array('class' => 'r16',
'css' => 'text-align: left;padding-left: 100px; border: solid 1px #CCCCCC; margin: 10px 490px 0px 285px;'),
...
答案 1 :(得分:1)
你可以试试这个:
$range_start_arr = array(12, 34, 45, 56, 67, 78, 89, 910, 1011, 1112, 1213, 1314, 1415, 1516);
$range_end_arr = array(23, 45, 56, 67, 78, 89, 910, 1011, 1112, 1213, 1314, 1415, 1516, 1617);
for (i = 16; $i <= 29; $i++)
{
$k = $i - 16;
if($string == $range_start_arr[$k] && $string1 == $range_end_arr[$k]) $style = 'r'.$i;
}
我假设$string
和$string1
是常量,而您只是想缩短代码。
答案 2 :(得分:0)
如果通过for循环,我该如何避免以下情况?
你不能! $ string和$ string1来自哪里?此外,您的css类可能无法从$ string(1)计算,因为您的“间隔”不是相同的大小也不是线性的。
如何在运行时生成css?
不是调用.css文件,而是只放一个.php文件,然后回显计算样式。