0

我有一个包含一系列导航链接的文件,因此如果我想向导航菜单添加一个新链接,我可以在一个文件中完成,而不必手动更改多个。但是,每个菜单链接(类别)都需要不同的 a:hover 颜色,但我当前的编码不起作用。

这是存储菜单项的文件,以及应该是多索引数组中的 a:hover 颜色的颜色(有些留空):

<?php

$CATEGORIES = array(
    array("culture", "#f9993c"),
    array("nature", "#59AF56"),
    array("science", "COLOUR"),
    array("society", "COLOUR"),
    array("technology", "COLOUR")
    );

?>

这是打印菜单项的文件:

<?php

$count_categories = count($CATEGORIES);
$incr_categories = 0;

while($incr_categories != $count_categories) {
    // Change main_right_sub a:hover
    echo "<style>#main_right_sub a:hover { color: ".$CATEGORIES[$incr_categories][1]."; } </style>";

    // Print Nav Items
    echo "<a href='category.php?cat?=".$CATEGORIES[$incr_categories][0]."'>".strtoupper($CATEGORIES[$incr_categories][0])."</a>";

    // Increment Count
    $incr_categories++;
    if ($incr_categories != $count_categories) {
        echo "&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;";
    }
}

?>

我猜你不能交换这样的样式,因为所有链接在鼠标悬停时都显示为“#59AF56”,这很奇怪,因为这是多索引数组中的第二种颜色。任何帮助,将不胜感激!

4

2 回答 2

1

您可以将类别设置为链接上的 CSS 类,以便生成的链接如下所示,例如:

<a href="category.php?cat=culture" class="culture">CULTURE</a>

然后使用必要的颜色为每个链接类定义 CSS 样式(通过在 PHP 代码中生成它们或在静态 CSS 文件中定义它们。例如,对于上例中的文化链接:

#main_right_sub a.culture:hover
{
    color: #f9993c;
}
于 2013-04-29T16:58:43.717 回答
0

首先,css 不会像您想象的那样在每个元素之后加载,浏览器将使用对所有元素具有最高优先级的任何规则,您可以做的是使用内联 css 样式,但不幸:hover的是不是支持者,所以你最后的手段基本上是 javascript

<a
   href="link.php"
   onMouseOver="this.style.color='#FFF'"
   onMouseOut="this.style.color='#000'"
>Text</a>

但毫无疑问,最佳方法是使用类,给每个颜色主题一个类,并根据需要将这些类添加到所需的元素中。

于 2013-04-29T17:04:00.220 回答