2016-01-20 2 views
1

Благодаря большому парню, я обнаружил сегодня возможность изменения цвета текста при наведении на DIV таким образом:Изменения на изображении парить

div.button:hover span { 
 
    color: rgb(88, 202, 230); 
 
}
<div class='button'> 
 
    <div class='svg bookmarks'></div> 
 
    <span class=''>Bookmarks</span> 
 
    </div>

И бит позже я попытался реализовать такую ​​функциональность поверх изображения, но результат не достигнут, можете ли вы объяснить, что сделано неправильно и, возможно, разница между случаями.

img.button:hover p.text { 
 
    color: rgb(88, 202, 230); 
 
} 
 

 
p { 
 
    font-weight: 300; 
 
    transition: color 1s ease; 
 
}
<img class='button' src='http://s8.postimg.org/s9vmeo1dx/user_avatar_circle.jpg'> 
 
    <p class='text'>Profile</p>

ответ

1

попробуйте добавить ~

img.button:hover ~ p.text { 
 
    color: rgb(88, 202, 230); 
 
} 
 

 
p { 
 
    font-weight: 300; 
 
    transition: color 1s ease; 
 
}
<img class='button' src='http://s8.postimg.org/s9vmeo1dx/user_avatar_circle.jpg'> 
 
    <p class='text'>Profile</p>

1

Используйте селектор + CSS:

img.button:hover + p.text { 
 
    color: rgb(88, 202, 230); 
 
} 
 

 
p { 
 
    font-weight: 300; 
 
    transition: color 1s ease; 
 
}
<img class='button' src='http://s8.postimg.org/s9vmeo1dx/user_avatar_circle.jpg'> 
 
    <p class='text'>Profile</p>

0

Ваш селектор является неправильным, потому что пункт не является ребенком образа. Используя общий контейнер будет исправить:

.c:hover p.text { 
 
    color: rgb(88, 202, 230); 
 
} 
 

 
p { 
 
    font-weight: 300; 
 
    transition: color 1s ease; 
 
}
<div class="c"> 
 
    <img class='button' src='http://s8.postimg.org/s9vmeo1dx/user_avatar_circle.jpg'> 
 
    <p class='text'>Profile</p> 
 
</div>

+0

Спасибо за предложение :) Так что, если я хорошо понимал этот метод может применяться только к дочернему элементу? – Adrian

+0

Добро пожаловать. Раньше это было возможно только для дочерних элементов, но теперь в CSS3 мы можем сделать это и для братьев и сестер. См. Другой ответ с помощью селектора '+'. – Shomz

+1

Теперь я понимаю. Спасибо за объяснение и приятный день! – Adrian

1

В селекторе CSS, пространство значит «является дочерним », поэтому способ, которым работает ваш селектор, говорит, что когда тег img с« кнопкой »класса завис, выберите дочерний p тег с текстом класса и изменить цвет.

Вместо этого используйте смежный селектор родственный (+), чтобы сказать, что это родной брат, а не ребенок

img.button:hover + p.text { 
 
    color: rgb(88, 202, 230); 
 
} 
 

 
p { 
 
    font-weight: 300; 
 
    transition: color 1s ease; 
 
}
<img class='button' src='http://s8.postimg.org/s9vmeo1dx/user_avatar_circle.jpg'> 
 
    <p class='text'>Profile</p>

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