2012-08-31 60 views
0

我有一個首先是空的列表,並通過JavaScript動態填充。現在我希望列表僅在非空時具有邊框,但:emptyparent選擇器不匹配。爲什麼CSS選擇器:父母不工作?

html.erb文件列表被宣佈爲這樣的:

<ul id="cepage_list" /> 

它填充上述形式在用戶輸入時(添加li S),這是工作的罰款。
現在我有這樣的CSS:

ul#cepage_list 
{ 
    list-style-type: none; 
    margin: 0px; 
    padding-left:0px; 
    background-color: white;  
} 
ul#cepage_list:parent 
{ 
    border: 1px dotted blue; 
} 
ul#cepage_list:empty 
{ 
    border: 1px dotted red; 
} 

默認樣式適用正確,但與僞類選擇的那些古怪適用。這裏的行爲:

  • 在頁面加載時,紅色邊框應用,這是確定
  • 上添加li的,沒有什麼(所期望的:parent選擇適用)
  • 上(用jQuery .empty())結算清單, 好。

但是,爲什麼:parent僞類在列表下有子li時未被識別?

(上鉻和Firefox 14測試)

回答

4

<ul>不是自閉合標籤。將其更改爲:

<ul id="cepage_list"></ul> 

另外,:parent不是真正的僞類。你的意思是:not(:empty)

+0

thx,解決了第一個問題,但沒有':parent'選擇器的問題。 – Antoine

+0

@Antoine:這不是一個真正的僞類。請參閱編輯。 – Ryan

+0

我是如何被說服的:在CSS中有一個父母選擇器?謝謝! – Antoine