#css #hover
#css #наведите
Вопрос:
У меня есть цвет фона на моих ссылках (при наведении курсора, в стиле rails). И у меня есть изображение внутри a-тега, которое я не хочу иметь фоном при наведении курсора.
Я пытался
a:hover img{ background-color: #fff; }
но это ничего не дает. Как мне исключить img-теги внутри a-тегов из наведения?
Спасибо, MrB
редактировать: jsFiddle
В примере: «google» имеет красный фон при наведении курсора мыши, как и предполагалось. Но когда вы наводите курсор на изображение, это также происходит. Предполагается, что у него не должно быть фона при наведении.
Комментарии:
1. Не включая их в первую очередь?
2. Вы пропускаете a: в вашем примере это опечатка?
a:hover img{ background-color: #fff; }
3. О, the: Я забыл. Тем не менее, это есть в моем коде. Что такое jsFiddle?
4. Миф: Как мне не включать их в первую очередь?
5. @MrB: посмотри на jsfiddle.net . Вы можете опубликовать свой пример исходного кода, чтобы другие могли лучше понять вашу концепцию, проблемы и т.д.
Ответ №1:
если я вас правильно понял, я думаю, вы пытаетесь сделать что-то вроде этого:
a:hover img{ visibility: hidden; }
или
a:hover img{ display: none; }
Редактировать
В таком случае вы хотите:
a:hover img {background-color: transparent;}
Пример размещен на:http://jsfiddle.net/6qwJy
Комментарии:
1. Извините, нет. Я просто хочу, чтобы у изображения не было фона при наведении курсора мыши, как я хочу, чтобы ссылки были.
2. a: изображение при наведении курсора { цвет фона: прозрачный; }
3. Это то, что я ввел, но это не работает. Изображение по-прежнему имеет фон при наведении курсора мыши.
4.
background-color:transparent
только частично реализовано в IE6, поэтому это решение не будет работать для этого браузера.5. @andyb: Оказывается, я немного ошибся в своих рассуждениях (о том, почему это не сработало). Это работает в IE6. Делайте из этого что хотите: fiddle.jshell.net/kp4ZK/show/light
Ответ №2:
Трудно понять ваш пример. Допустим, у меня есть этот фрагмент HTML:
<a class="foo" href="#"><img src="bar.gif"/> Click me</a>
затем с помощью этих правил стиля
a#foo:hover { background-color: blue; }
a#foo img { background-color: white; }
цвет фона изображения всегда будет белым, также при наведении курсора мыши.
Однако, если у вас есть фоновые изображения на элементе, который содержит вашу ссылку, и вы хотите, чтобы они отображались за изображением переднего плана, то вы не можете этого сделать. В этом случае вам придется заключить текст ссылки «Нажмите на меня» в интервал и записать в свою таблицу стилей:
a#foo:hover span { background-color: blue; }
Это то, что ты задумал?
Комментарии:
1. Закрыть. Текст «щелкните меня» и тег img не находятся в одном и том же a-теге. Я хочу, чтобы текст в a-tags имел:hover-background-color, но не img-теги в a-tags.
2. @MrB В этом случае добавьте атрибут class к тегам <a>, которые заключают изображение, чтобы вы могли выбрать их конкретно, например <a class=»clickableimage» href=»#»><img src=»logo2.png»></a>. Если вы не можете изменить html, попробуйте javascript $(‘a img’).parent(). Затем вы можете написать в своей таблице стилей [class ^=’clickableimage’]:hover { background-color: red; } или что-то в этом роде…
3. Я допустил ошибку в предыдущем комментарии. Я хотел сказать: если вы не можете изменить html, попробуйте $(‘a img’).parent() в javascript, чтобы найти теги <a>, которые заключают изображение, затем добавьте имя класса программно. Наконец, вы можете написать в своей таблице стилей a:not(.clickableimage):hover { background-color: red; }, чтобы конкретно настроить таргетинг только на <a> без изображения.
Ответ №3:
Ах! Я сделал это. Просто. Я просто поместил изображение без фона в другой div, а затем сделал:
.otherdiv a:hover{ background-color: transparent; }
Ответ №4:
a img {
vertical-align: bottom;
}
Комментарии:
1. предполагается, что вы должны описать свой ответ .. только указание ссылки или кода не является хорошей техникой
Ответ №5:
Хорошо, вы мне не поверите, но у меня была та же проблема, что и выше, и я решил ее следующим образом:
У меня было что-то вроде этого:
<a href="#">
<img src"path/to/image.gif">
</a>
И в моем CSS у меня было:
a:hover { text-decoration: underline; }
И, поверьте мне, мне просто нужно было поместить тег ‘img’ в ту же строку, что и тег ‘a’, вот так:
<a href="#"><img src="path/to/img.gif"></a>
И это было все!!!