9

I have been struggling to find out why this rollover is not behaving as it should in IE8.

Go here: http://baked-beans.tv in IE8, you'll see that the rollover only works on the lower half of the thumbnails.

Btw, this is not activated by an <a> tag but by a :hover for the <div>.

What I can't figure out is why it works on only the lower half of the div, below the image, but not on the image (the image is not z-indexed so thats not the issue)

As soon as I change the background-color to anything else besides transparent, it works 100%. So this just blows my mind... why the bottom half, but not the top half, and only when I set bg-color to transparent?! Gotta love Internet Explorer.

This works as it should on every other browser (the entire square acts as a rollover)

Here's the CSS:

.cat_rollout {
    position: absolute;
    float:left;
    top:0;
    left:0;
    min-height:274px;
    min-width:274px;
    font-size: 0;
    background-color: transparent;
}

.cat_rollout:hover {
    background-image: url(images/rollover.png);
    min-width:254px;
    min-height:242px;
    padding-left: 20px;
    color: white;
    font-size: 21px;
    font-weight: normal;
    line-height: 24px;
    padding-top: 34px;
}
franzlorenzon
  • 5,845
  • 6
  • 36
  • 58
RGBK
  • 2,048
  • 5
  • 35
  • 55

5 Answers5

9

Try faking a background image or setting it to a blank.gif instead of making it transparent.

background:url(blank.gif);

See http://work.arounds.org/issue/22/positioned-anchor-not-clickable-ie6/

meder omuraliev
  • 183,342
  • 71
  • 393
  • 434
5

The problem is that for some time (a week? two weeks?) IE has changed the way it interprets background-color. It seems that you cannot say, that the color is transparent, rather the whole background. So you should change background-color: transparent into background: transparent. Very nasty.

Andrew Barber
  • 39,603
  • 20
  • 94
  • 123
Mathijas
  • 51
  • 1
  • 1
1

The same problem has been witnessed, where hovering on a transparent element's blank area doesn't make css rules related to hover take effects. The problem is fixed with giving the element the following style.

background-color: rgba(0, 0, 0, 0.001);
Tony Cheng
  • 11
  • 2
0

You can use an 1x1 transparent gif as a datauri if you'd rather.

background-image:url(data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==);

Up to you which one you'd prefer, this works and is an alternative to the selected answer.

fitz0019
  • 21
  • 3
0

You could also try changing the hover selector to :

 .thumb_container:hover .cat_rollout {...}

so that the parent containment div is the element reacting to the hover.

Imane Fateh
  • 2,418
  • 3
  • 19
  • 23
Chris Bentley
  • 1,945
  • 18
  • 23