我有這樣的問題(這是html/css菜單):是否可以設置僅在鏈接網頁正在瀏覽時才顯示的鏈接樣式?
網上商店|另一個eshop |另一個網上商店
客戶希望它像這樣工作的:
用戶來到網站,點擊網上商店。網上商店更改爲紅色,並帶有紅框大綱。用戶決定訪問另一個網上商店,所以Eshop將回到正常的顏色,沒有紅框大綱,而另一家網上商店將再次做紅色輪廓技巧..
我知道有A:已訪問但我不想全部訪問過的菜單鏈接用紅框大綱顯示爲紅色。
Thx任何幫助:)
我有這樣的問題(這是html/css菜單):是否可以設置僅在鏈接網頁正在瀏覽時才顯示的鏈接樣式?
網上商店|另一個eshop |另一個網上商店
客戶希望它像這樣工作的:
用戶來到網站,點擊網上商店。網上商店更改爲紅色,並帶有紅框大綱。用戶決定訪問另一個網上商店,所以Eshop將回到正常的顏色,沒有紅框大綱,而另一家網上商店將再次做紅色輪廓技巧..
我知道有A:已訪問但我不想全部訪問過的菜單鏈接用紅框大綱顯示爲紅色。
Thx任何幫助:)
同喬斯科拉已經寫,但更具體:
.red {
outline-color:red;
outline-width:10px;
}
現在你可以使用JavaScript(使用jQuery本示例)在click事件處理程序:
$('.red').removeClass('red'); // removes class red from all items with class red
$(this).addClass('red'); // adds class red to the clicked item
另一個這樣做的方式是使用僞選擇器:target。
有關它的信息:
據我所知,只能通過爲每個頁面生成不同的代碼(爲當前頁面設置不同的類)或在頁面加載後使用JavaScript更改菜單來完成此操作。
基本上,它不能與CSS獨自完成,一些腳本將不得不發生(服務器或客戶端,最好的服務器)。正如其他人所建議的,向活動鏈接添加一個「選定」類(或類似的東西),並在CSS中爲其定義樣式。
例如,鏈接:
<a href="#">Eshop</a> | <a href="#" class="selected">Another eshop</a> | <a href="#">Another eshop</a>
的風格:
.selected {
font-weight:bold;
color:#efefef;
}
的聯繫將被動態生成,使用PHP例如:
<?php
foreach(array('eshop' => '#','another eshop' => '#','yet another eshop' => '#') as $title => $url) {
echo '<a href="' . $url . '"'
. ($url == $_SERVER['REQUEST_URI'] ? ' class="selected"' : null)
. '>' . $title . '</a>';
}
你可以使用和屬性選擇器像這樣...
a[href^="http:\\www.EShop"]:visted { color: red; }
通過這樣做,您所說的任何鏈接的href以http:\ Eshop.com開頭,並且已被visted應用此樣式。
你可以用普通的CSS和HTML來做到這一點。我們通常使用的方法是爲每個導航項目設置匹配的ID和類別選擇器。
的好處,這是你不必修改菜單代碼每頁,您修改頁面本身,你就已經在做,除非一切都是完全動態的。
它的工作原理是這樣的:
<!-- ... head, etc ... -->
<body>
<ul class="nav">
<li><a href="home.html" class="nav-home">Home</a></li>
<li><a href="art.html" class="nav-art">Art</a></li>
<li><a href="contact.html" class="nav-contact">Contact</a></li>
</ul>
<!-- ... more page ... -->
</body>
然後你設置一些CSS是這樣的:
#NAV-HOME .nav-home,
#NAV-ART .nav-art,
#NAV-CONTACT .nav-contact { color:red; }
要改變「電流」菜單項,你可以指定相應的ID給元素在文檔結構中更高。通常我會將其添加到<標籤>標籤。
突出「藝術」頁面,所有你需要做的是這樣的:
<!-- The "Art" item will stand out. -->
<body id="NAV-ART">
<ul class="nav">
<li><a href="home.html" class="nav-home">Home</a></li>
<li><a href="art.html" class="nav-art">Art</a></li>
<li><a href="contact.html" class="nav-contact">Contact</a></li>
</ul>
<!-- ... more page ... -->
</body>
這取決於你的頁面是如何構建的,但經典的CSS是這樣做的是對的ID體,以及每個環節的導航,所以你可能有類似:
eshop.html
<body id="eshop">
<ul>
<li><a href="" id="link-eshop">Eshop</a></li>
<li><a href="" id="link-aeshop">Another eshop</a></li>
<li><a href="" id="link-eshop-three">Another eshop</a></li>
</ul>
</body>
和相應的CSS:
#eshop #link-eshop, #aeshop, #link-aeshop, #eshop-three #link-eshop-three
{
color: red;
outline: 1px solid red;
}
導航一致;只有身體上的ID在頁面之間變化。
如果你正在向一個新的頁面中相同的瀏覽器窗口,扎克穆爾格魯和鮑比·傑克既具有優良的答案。
如果打開一個新的窗口,網上商店的鏈接,沒有太多你可以用CSS單獨做的,GS除此之外具備的(紅色)類名的選擇一個合理的答案。
這是什麼?
你能否澄清一下用例,新網站是否在新窗口中打開/ iframe?你只想突出顯示最後選擇的鏈接? Eshop網站關閉時是否需要取消選擇? – tpower 2008-10-12 15:53:28
不,他們在同一個窗口中打開,是的,關閉網站後應該取消選擇。我想突出顯示「活動網站的鏈接」.. – Skuta 2008-10-12 15:56:23