2012-08-04 68 views
0

我想为菜单制作最简单的CSS。有一个外部的div和一个内部的锚点。如果外部的类与内部的ID相同,那将是活动样式的。 示例代码:类下的CSS ID

<div class='<?php echo $_GET['menu']; ?>'> 
    <a href="index.php?menu=menu1" id='menu1'>Menu 1</a> 
    <a href="index.php?menu=menu2" id='menu2'>Menu 2</a> 
    <a href="index.php?menu=menu3" id='menu3'>Menu 3</a> 
    <a href="index.php?menu=menu4" id='menu4'>Menu 4</a> 
    <a href="index.php?menu=menu5" id='menu5'>Menu 5</a> 
</div> 

,我不想写了很多的CSS,如:

.menu1 #menu1, .menu2 #menu2, .menu3 .... 
{ /*active stlye*/} 

所以我想以下几点:如果类名是相同的id其下会很活跃。

在此先感谢。

+1

你可以使用简单的javascript来完成这个.. – redDevil 2012-08-04 08:22:21

回答

0

这是不可能的。 CSS不是一种编程语言,你必须完全指定每个selector

但既然你已经使用PHP工作会,如果你申请的类来你的锚标签之一是轻松了不少:

<div class='<?php echo $_GET['menu']; ?>'> 
    <a href="index.php?menu=menu1" <?php echo $a_class[1]; ?> id='menu1'>Menu 1</a> 
    <a href="index.php?menu=menu2" <?php echo $a_class[2]; ?> id='menu2'>Menu 2</a> 
    <a href="index.php?menu=menu3" <?php echo $a_class[3]; ?> id='menu3'>Menu 3</a> 
    <a href="index.php?menu=menu4" <?php echo $a_class[4]; ?> id='menu4'>Menu 4</a> 
    <a href="index.php?menu=menu5" <?php echo $a_class[5]; ?> id='menu5'>Menu 5</a> 
</div> 

您必须要么指定了一堆选择或将代码添加到您的PHP脚本。

+0

谢谢Zeta :)我用这种方式,但我认为我可以解决它更容易。 – androbin 2012-08-04 08:24:24

+1

@androbin:不幸的不是。要么你必须指定一堆选择器,或者将代码添加到你的PHP脚本中:/。 – Zeta 2012-08-04 08:35:21

+0

请张贴它作为答案,我会把一个勾号:) – androbin 2012-08-05 19:08:48

0

让我们假设我把你弄好了。那么答案可能是:

<div id="menu"> 
<?php 
    for($i = 0; $i < 5; $i++) { 
     if(isset($_GET['menu']) && $i == $_GET['menu']) 
      echo " <a href=\"index.php?menu=$i\" id=\"menu$i\" class=\"menu_active\">Menu $i</a>"; 
     else 
      echo " <a href=\"index.php?menu=$i\" id=\"menu$i\">Menu $i</a>"; 
    } 
?> 
</div> 

而在你的CSS

#menu a { 
    /* Whatever you want for your normal links */ 
} 

#menu .menu_active { 
    /* Whatever you want for your active link */ 
} 

就是这样!

1

你不能这样做与CSS;也许你也可以使用PHP来实现了接近:

<?php for($i=1;$i<=5;$i++){ ?> 
<a href="index.php?menu=menu<?php echo $i;?>" <?php if($_GET['menu'] == 'menu'.$i) echo 'class="selected"'; ?>>Menu <?php echo $i;?></a> 
<?php } ?> 

而CSS:

 .selected{ 
/*active style*/ 
     } 

编辑:与PHP的解决方案是不是一个基于JS更好,因为:每个人都会看到.selected类,即使JS为其他人停用+的人,菜单也不会闪烁。老实说,看到菜单CSS通过JS更改是非常烦人的。