类下的CSS id

类下的CSS id,css,styling,Css,Styling,我想为菜单制作最简单的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>

我想为菜单制作最简单的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>
所以我想要以下内容:如果类名与下面的id相同,那么它将处于活动状态


提前谢谢。

那是不可能的。CSS不是一种编程语言,您必须完全指定每一种

但是,由于您已经使用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>

让我们假设我对你很好。那么答案可能是:

<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无法做到这一点;也许您可以使用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 } ?>

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

u可以使用简单的javascript来实现这一点。。谢谢你,泽塔:)我用了那种方式,但我认为我可以更轻松地解决它。@androbin:不幸的是没有。要么你必须指定一组选择器,要么在PHP脚本中添加代码:/。请将其作为答案发布,我会打勾:)
#menu a {
    /* Whatever you want for your normal links */
}

#menu .menu_active {
    /* Whatever you want for your active link */
}
<?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 } ?>
        .selected{
/*active style*/
        }