问题
I've got a CSS :hover
pseudo-class that is not producing any results.
I was messing around with some image gallery code, and I've managed to get this snippet that doesn't work. I can't figure out why. Some of the weirder CSS rules regarding size here are because these divs normally contain images. I removed the images for simplicity, but left the rules in.
Other :hover
elements on the same page are working.
I'm not sure what else to say about the problem, since this is so basic. I'm probably missing something really obvious.
JSFiddle here - http://jsfiddle.net/GbxCM/
回答1:
In some cases (mostly with absolute
positioning), you cannot apply a :hover
pseudo-class to something with display: inline-block;
. (If you have Chrome, use inspect element and add the :hover
trait yourself--notice, it will work perfectly! The browser just doesn't register the :hover
itself.)
So, I went ahead and replaced this with float: left;
, added a margin (to simulate the inline-block
look), and changed the br
to a clear
. The result is in this jsFiddle.
回答2:
If I'm guessing correctly what you're trying to do, then you don't need to change the positioning or any of that. The only change I can see you wanting to make is changing the background color. Here's the fiddle I made to clarify that response.
Here's the code for readability's sake:
HTML
<div class="wrapper">
<div class="squareswrapsolo"></div>
<div class="squareswrapsolo"></div>
<div class="squareswrapsolo"></div>
<div class="squareswrapsolo"></div>
<br>
<div class="squareswrapsolo"></div>
<div class="squareswrapsolo"></div>
<div class="squareswrapsolo"></div>
<div class="squareswrapsolo"></div>
</div>
CSS
.wrapper {
height: 600px;
width: 600px;
overflow: hidden;
position: relative;
}
.squareswrapsolo {
height: 100px;
width: 100px;
display: inline-block;
overflow: hidden;
background: #ccc;
}
.squareswrapsolo:hover {
background: #000;
}
来源:https://stackoverflow.com/questions/12361244/css-hover-pseudo-class-not-working