CSS样式if / else语句没有响应

时间:2012-02-07 19:09:56

标签: php css

我试图根据我将要显示的变量的值设置我的li元素的位置。出于某种原因,这似乎不起作用。有人看到我的代码有什么问题吗?感谢

echo "<li class=\"compensation_post posts_values\" if($compensation == \"Free\") {style=\"left: 540px;\"}>$compensation</li>";

2 个答案:

答案 0 :(得分:3)

PHP可以用双引号字符串解析变量,但不能解析条件。因此,您需要通过以下两种方式之一来解决这个问题:

分居:

$style = '';
if ($compensation == "Free")
  $style = " style=\"left:540px;\"";
echo "<li class=\"compensation_post posts_values\"$style>$compensation</li>";

或直播:

echo "<li class=\"compensation_post posts_values\" "
   . ($compensation == "Free" ? "style=\"left:540px;" : "")
   . ">$compensation</li>";

我想你也可以进出php代码,如:

?><li class=\"compensation_post posts_values\" <?= ($compensation == "Free" ? "style=\"left:540px;\"" : ""); ?>>$compensation</li>

答案 1 :(得分:0)

您不能使用这样的if语句。相反,你可以使用速记if。这样的事情应该有效:

echo "<li class=\"compensation_post posts_values\"" . (($compensation == 'Free') ? 'style=\"left: 540px;\" : '') . ">$compensation</li>";

或者,你可以这样做:

if ($compensation == 'Free')
$style = 'style="left: 540px;"';
echo "<li class=\"compensation_post posts_values\" $style>$compensation</li>";