2013-08-22 134 views
1

我想要更改所有li的背景,它具有div,它具有<a class="wasAdRead"更改所有「li」(懸停)的背景

<li> 
    <div class="notification_div" style="padding-top: 6px;"> 
     <a class="wasAdRead" style="cursor:pointer;">Remind me later</a> 
    </div> 
</li> 

我想:

#notification-list li[div[.wasAdRead]]:hover 
{ 
    background: white; 
} 

任何幫助表示讚賞!

+2

你不僅可以與目前的CSS(3)做到這一點。你可以用JS做,或者等到CSS 4 :) – Itay

+0

我不認爲你可以。你試圖選擇'.notification_div'的父元素,這對於純CSS是不可能的(使用JS你可以)。另外檢查:http://stackoverflow.com/a/1014958/1930721 – LinkinTED

+2

你的李包含其他東西?如果不是......爲什麼不把wasAdRead類放入li元素中?或者你可以改變div的背景顏色,它不是li本身,而是作爲一個塊元素填充整個li的區域(除非它有一些填充) – aleation

回答

3

你不能只用CSS(2013年)。您需要使用javascript來完成此操作(通過選擇每個<li>並檢查其內容)。在jQuery中,它給像:

$("a.wasAdRead").parents('li').css("background-color", "white"); 

...或者你可以等待CSS4(運氣好的話,你可以等待多年的瀏覽器支持...)

您可以檢查這個帖子裏面是關於你的問題:Is there a CSS parent selector?

1

不可能在CSS中,你可以只使用JS做到這一點。你也可以嘗試這個替代解決方案。

.notification_div a.wasAdRead{ 
    display:block; 
    padding-top:6px; 
    cursor: pointer; 
    background-color:white; 
} 
1

此您正在尋找

li > .notification_div > .wasAdRead:hover{ 
    display:block; 
    padding-top:6px; 
    cursor: pointer; 
    background-color:red; 
} 

Fiddle