我嘗試了幾種方法來完成此操作,但似乎沒有一種方法適用於我。ListItem css在活動頁面上更改
我有一個相當簡單的菜單,在我的頁面頂部有一些鏈接,默認情況下,正常和灰色的字體重量,並懸停在它們上方,將它們變成粗體和白色。 這工作正常,但我想要的是爲當前頁面菜單項大膽和白色。 例如如果我在主頁上,我希望Home Link爲粗體而白色,而其他則爲灰色且正常,如果我轉到About頁面,則About Link爲粗體而白色,而其他則爲灰色且正常。
目前我有這樣的:
HTML:
<ul id="menuListItems" class="headerMenu">
<li id="home"><a href="./Home.php">Home</a></li>
<li id="about"><a href="./About.php">About Me</a></li>
<li id="services"><a href="./Services.php">Services</a></li>
<li id="gallery"><a href="./Gallery.php">Gallery</a></li>
<li id="contact"><a href="./Contact.php">Contact Me</a></li>
</ul>
的 'headerMenu' 類只是樣式列表。
JQuery的:
$(document).ready(function() {
$("#menuListItems li").each(function() {
if (document.URL.toUpperCase().indexOf($(this).attr('id').toUpperCase()) > -1)
{
$(this).addClass("isSelected");
}
});
});
CSS:
.isSelected a { font-weight: bold; color:white;}
以上不工作,現在奇怪的是,我不能<li>
類甚至手動設置爲 'isSelected' 例如<li id="home" class="isSelected"><a href="./Home.php">Home</a></li>
。這是我預計會有效的工作,所以似乎沒有爲<li>
正確設置類屬性。
任何人有任何想法,爲什麼這是行不通的?或者事實上,另一種方式可以實現我所需要的?
非常感謝
編輯:
這裏是所需的其餘CSS:
ul.headerMenu {
list-style:none; /* remove bullets */
padding-left: 50px;
width: 630px;
top: 303px;
position: absolute;
}
ul.headerMenu li a {
padding:10px 20px;
text-decoration:none;
float:left;
font: 15px "Trebuchet MS", Verdana, Helvetica, sans-serif;
font-weight: normal;
color: grey;
}
ul.headerMenu li a:hover
{
color:white;
font-weight:bold;
}
香港專業教育學院也對orginial代碼略有變化,不使用else塊設置isNotSelected並將其添加到ul.headerMenu li a
我一般設置「活動」類(如您的「isSelected」),以當前頁面的導航鏈接的服務器端,而不是在頁面加載後。如果您使用PHP或其他方法,那對您而言可能更簡單。否則,我仍然建議只爲鏈接設置「isNotSelected」的默認樣式,然後只設置一個「isSelected」來覆蓋這些樣式。 – justis
你能發佈一個鏈接和/或jsfiddle和/或所有相關的CSS嗎?我猜他們是在CSS中的衝突。 –
也許這個班很早就適用了,並且正在被其他風格所抹去? JSFiddle重新創建該問題可能會有所幫助。 – paislee