2012-09-11 19 views
7

CSS :hover疑似クラスがあり、結果が得られません。CSS:ホバー疑似クラスが動作しない

私はイメージギャラリーコードを使いこなしていましたが、私はこのスニペットがうまくいかない場合がありました。なぜ私は理解できません。これらのdivには通常イメージが含まれているため、ここでサイズに関するCSSルールが奇妙なものがあります。簡単にするためにイメージを削除しましたが、ルールは残りました。

他の:hoverの要素が同じページにあります。

これは非常に基本的なので、私は問題について何か言いたいことはわかりません。私はおそらく本当に明白な何かを失っているでしょうここ

JSFiddle - http://jsfiddle.net/GbxCM/

+0

私はあなたがギャラリーをやろうとしていると思っています。ホバーでCSSを使用して、画像を含むdivを全画面表示にします。私はそれを行うために既存のJavaScriptギャラリーを使用するだろう... – mb21

+0

私はちょうどCSSでそれを行う方法を取得しようとしていた。 – iabw

+0

また、次のボタンと前のボタンがある場合は、JavaScriptを使用して終了します。そして、すべての主要なブラウザでテストされている既存のソリューションが存在する場合、なぜその革新をもたらすのでしょうか。多くの人が使っているものはhttp://lokeshdhakar.com/projects/lightbox2/ – mb21

答えて

11

いくつかの例(主にabsoluteポジショニングと)では、あなたは適用することはできません:hover疑似クラスメーピングはdisplay: inline-block;である。 (あなたは、Chromeを持っている要素を検査し、:hoverを自分でトレイトを追加使用する場合 - !。予告、それは完璧に動作するブラウザがちょうど:hover自身を登録しません)

だから、私は先に行って、float: left;でこれを置き換えます(inline-blockの外観をシミュレートするため)余白を追加し、brclearに変更しました。結果はthis jsFiddleです。

+0

私はもともとインラインブロックを作成して、自動的に含まれている画像にリサイズしていましたが、これは他のギャラリースタイルのものでした。私はフロートがここで動作すると思うし、私はそれを自分で考えないために少し馬鹿だと感じる。私が確認してテストした後、私は受け入れるでしょう。 – iabw

+0

エリック、ホバー、アブソリュート、インラインブロックでこの矛盾の理由を知ったことはありますか?これは標準ですか、なぜですか?私はこの "バグ"についての情報を見つけることができません。 – iabw

+0

私は公式のレポートを見つけることもできません。私はちょうど間違ったことを探していると思う。私はおそらく、 'relative'測位が' absolute'測位のイベントを吸収するかもしれないと思いますか?純粋に推測。 – Eric

1

私はあなたが何をしようとして正しく推測している場合、あなたはポジショニングまたはそのいずれかを変更する必要はありません。私が望むように見える唯一の変化は、背景の色を変えることです。ここで

Here's the fiddle I made to clarify that response.は、読みやすさのためにコードです:

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; 
}​ 
+0

コードが正常に動作しているようです。しかし、あなたがリンクしているフィドルはうまくいきません。あなたは彼のオリジナルでリンクしています。 –

+0

おっと!訂正されました、ジョシュに感謝します。 – cereallarceny