使用HTML样式标签的做法不好吗?我怎么能做到这一点?

时间:2011-03-15 20:11:59

标签: php html refactoring

目前我正在做这样的事情:

<?php
if ($x == 0)
  $image = 'background-position: 0px -7px';
else
  $image = 'background-position: 0px -14px';
?>
<a class="asdf" style="<?php echo $image; ?>"></a>

这是基于HTML / PHP中的变量更改图像的推荐方法吗?有没有办法重构这个?

4 个答案:

答案 0 :(得分:2)

尝试这样的事情:

<?php
    $positionClass = ($x == 0) ? 'position1' : 'position2';
?>
<style type="text/css">
    .position1 { background-position: 0px -7px; }
    .position2 { background-position: 0px -14px; }
</style>
<a class="asdf <?php echo $positionClass;?>"></a>

PHP将设置应该使用哪个类,然后在HTML中回显相应的类。 CSS将应用所需的定位属性。

答案 1 :(得分:1)

如果它是样式的一部分,请使用css和类。如果它是内容的一部分,您应该使用img元素。

答案 2 :(得分:1)

你的代码很奇怪?在if语句结束时,该位置最终会开始-7或-14px ......第一个只是废话......

因此,这段代码可能是“整洁的”,但这只是个人的:

<a class="asdf" style="background-position: 0px -<?php echo (($x==0)?'7':'14') ?>px;"></a>

同样,有些人可能会争辩说,这个内联的内联运营商可能是不可读的,但它做同样的事情......

答案 3 :(得分:0)

我可能会设置一个类,然后通过PHP更改类。这样,您仍然在CSS中维护样式,但可以使用PHP选择它。