Да, это потому, что фон на самом деле является фоном. Лучший способ добиться этого в raw css - продолжить использовать фон:
.me
{
background-color: none;
background-image: url(dummy.png);
background-repeat: no-repeat;
}
.me:hover
{
background-color: rgba(150,150,150,0.5);
background-image: ;
}
Вы также можете добиться этого эффекта с помощью небольшого количества JavaScript.
<ul>
<li class="me">
<span class="cont"><img="dummy.png" onmouseover='this.src="sometransparent.gif";' onmouseout='this.src="dummy.png";'></span>
</li>
<li class="me">
<span class="cont"><img="dummy.png"" onmouseover='this.src="sometransparent.gif";' onmouseout='this.src="dummy.png";></span>
</li>
</ul>
Код не проверен. Для правильной настройки может потребоваться настройка.
Редактировать: Концепция наложения
Ни один из этих псевдокодов не является тестовым, но я делал это раньше, поэтому может потребоваться небольшая настройка. У меня нет копии оригинала, которую я сделал, поэтому мне придется ее использовать. Первым шагом является создание относительного контейнера и 2 вспомогательных контейнеров.
.meContainer
{
position: relative;
width: 100px;
height: 30px; /* I usually specify height/width for these things */
}
.meContainerLink
{
position: absolute;
top: 0;
left: 0; /* You need to use position to get them to overlap */
z-index: 1; /* Provide a layer */
}
.meContainerAlpha
{
position: absolute;
top: -30px; /* Move it UP 30px */
left: 0px;
z-index: 2; /* Place it on top of the other layer */
display: none; /* Hide it */
background-color: rgba(150,150,150,0.5);
}
.meContainerAlpha:hover
{
display: inline; /* Show it */
}
Тогда вам нужно поместить их в div внутри вашего <li>
.
<ul>
<li class="me">
<div class="meContainer">
<div class="meContainerLink">
<img="dummy.png">
</div>
<div class="meContainerAlpha">
</div>
</div>
</li>
<li class="me">
<div class="meContainer">
<div class="meContainerLink">
<img="dummy.png">
</div>
<div class="meContainerAlpha">
</div>
</div>
</li>
</ul>
Я не помню, чтобы когда-либо пробовал этот метод внутри встроенных тегов <li>
, так что поначалу он может вести себя странно. Возможно, вам придется отказаться от <li>
и полностью перейти на другую структуру <div>
.