0

ナビゲーション リンクの配列を保持するファイルがあるので、新しいリンクをナビゲーション メニューに追加したい場合は、手動で複数のリンクを変更するのではなく、1 つのファイルで行うことができます。ただし、各メニュー リンク (カテゴリ) には異なる 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」として表示されるため、そのようなスタイルを交換することはできないと思います。これは、マルチインデックス配列の 2 番目の色であるため、奇妙です。どんな助けでも大歓迎です!

4

2 に答える 2

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 に答える