2013-08-22 3 views
1

Я хочу изменить фон для всех li который имеет div, который имеет <a class="wasAdRead".Изменить фон для всех `li` (hover)

<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

Есть ли у вас ли другие вещи? если нет ... почему бы просто не поместить класс isAdRead в элемент li? или вы можете изменить цвет фона div, это не сама лития, а как элемент блока, он заполнит всю область 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

Смежные вопросы