2013-04-29 155 views
0

我有一個文件,其中包含導航鏈接的數組,因此如果我想添加一個新的鏈接到導航菜單,我可以在一個文件中完成,而不必手動更改多個。但是,每個菜單鏈接(類別)都需要不同的a:懸停顏色,但我目前的編碼不起作用。CSS/PHP更改懸停顏色鏈接

這裏就是存儲在菜單項的文件,用顏色應該是沿着:在多索引數組懸停顏色(有些爲空白):

<?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」鼠標懸停,這是奇怪的,因爲這是第二顏色在多索引數組中。任何幫助,將不勝感激!

回答

0

所有的CSS首先每個元素作爲後不加載你可能認爲,瀏覽器將使用什麼是對所有的元素,優先級最高的規則你可以做的是使用內聯CSS樣式的,但不幸的是:hover不是支持者所以你最後的手段基本上是JavaScript的

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

但是最好的方法無疑是使用類,給每個類使用一個類,並根據需要將這些類添加到期望的元素。

+0

完美地工作,謝謝! – DorianHuxley 2013-04-29 17:25:08

1

您可以設置的類別爲CSS類在你的鏈接,以便生成的鏈接看起來是這樣的,例如:

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

然後定義必要的顏色各環節類的CSS樣式(通過在PHP代碼或通過在靜態CSS文件定義它們生成它們。例如,對於培養鏈路如在上面的例子:

#main_right_sub a.culture:hover 
{ 
    color: #f9993c; 
} 
+0

添加新菜單項時,這需要額外的修改。我試圖這樣做,只需要在一個文件中更改事件,剩下的事情就會自動完成,但無論如何感謝您 – DorianHuxley 2013-04-29 17:13:14

+0

最糟糕的情況,您可以放一個''在同一個文件中阻止你的HTML代碼,並把你的CSS代碼放在裏面。 – pilsetnieks 2013-04-29 17:14:39