2012-01-11 22 views
1

我正在嘗試定位具有子菜單項目的導航菜單項目,以便在項目之後放置向下箭頭。到目前爲止,我有這個:查找具有某些派生項目的元素

nav[role=navigation] ul li a:after { 
padding-left:5px; 
content: "\25BE"; 
color:#00b49c; 
} 

任何想法,我可以做到這一點?

我試過了:nav[role=navigation] > ul li a:after但沒有運氣。

感謝鄉親

+0

你能告訴我們一個HTML代碼片段嗎? – djlumley 2012-01-11 23:09:45

+0

nav [role =「navigation」] ul li a:在 – 2012-01-11 23:19:58

+0

之後你僅限於CSS嗎?或者你會對jQuery開放嗎?如果後者接着jQuery有選擇器,比如'li:has(ul)'(選擇包含一個或多個'ul'標籤的所有'li'標籤)。如果jQuery沒問題,我會在明天發佈一個解決方案讓你接受。 – ClarkeyBoy 2012-01-11 23:47:52

回答

0

嘗試

nav[role=navigation] ul li a::after { 
content: "\25BE"; 
color:#00b49c; 
display: block; 
float: left; 
width: 20px; 
height: 10px; 
} 
+0

這不是定位父母的列表項 - 它定位所有項目,不管它是否有孩子。 – ladygeekgeek 2012-01-11 23:29:16

+0

一些代碼在這裏:http://jsfiddle.net/bEqSE/4/ – ladygeekgeek 2012-01-11 23:30:05

+0

對不起,我的壞:nav [role = navigation]> ul> li> a:在 – Adaz 2012-01-11 23:56:52

0

根據所提供的信息,我猜測,該UI被該分項目,對不對?如果是這樣的情況下,最好的解決方案,我可以想出(未經測試)是:

$(document).ready(function() { 
    $("nav[role=navigation]:has(ul)").each(function() { 
     $("ul li a", $(this)).after("\25BE").css({color: "#00b49c", paddingLeft: "5px"}); 
    }); 
}); 

幾件事情需要注意,如果你是新來的jQuery:

  1. 這是標準的使用$(document).ready(function() {});方法。
  2. :has選擇器特定於jQuery(據我所知,雖然它可能包含在CSS3或4中 - 只要出現)。
  3. 請注意,.css函數中的CSS屬性以逗號分隔,屬性名稱會遺漏使用的短劃線和短劃線之後的首字母大寫(例如paddingLeft)。
  4. ul li a之後的$(this)用於表示無序列表中的任何鏈接,它們位於.each循環中當前對象內的列表項中。

我不完全確定你要選擇什麼 - 無論是導航,ul還是li。無論如何,您應該修改上述代碼,以便您希望選擇的元素位於第一行的:之前。

如果我沒有很好地回答這個問題,請詳細說明你想要達到的目標,我會盡我所能修改我的答案以滿足你的要求。

相關問題