2011-06-06 19 views
0

2状態のCSSロールオーバーを作成しようとしているため、ユーザーがボックスを転がすとボックスの色が変わり、別の画像が横に表示され、画像が消えてボックスが元の状態に戻ります。JavaScriptを使用しない2状態CSSのみのロールオーバー

私が働いているページはこちらです:

http://www.philippedollo.com/assign.htm

はJavaScriptをせずにこれを行うには任意の標準規格に準拠した方法はありますか?

答えて

1

以下は、CSSのリンクとホバープロパティを使用した簡単な例です。 spanを画像に置き換えて(float:leftを追加し、その順番を変更し、もう1つはspanに置き換えます)、.twoState:hoverの色を変更しますCSS。

HTML:

<a class="twoState" href="javascript:void(0);"> 
    <span>text&nbsp;</span> 
    <span class="twoStateInner">foo</span> 
</a> 

はCSS:

.twoStateInner { 
    display: none; 
} 

.twoState div { 
    float: left; 
} 

.twoState:hover .twoStateInner { 
    display: block; 
} 

.twoState:hover { 
    color: red; 
} 

また、あなたはこの動作を確認することができますhereのフィドル。

UPDATE:

リンク内spansが標準に準拠しているとして、Smirkinガーキンさんのコメントに基づいて、リンク内のspanタグにdivタグを変更しました。

+0

私はうまくいくかもしれないと思いますが、2つの順序付けられていないリスト(リンクのためのもの、画像を含むもう1つのもの)を使って何か問題が見えますか? – user784576

+0

@ user784576結論は、CSS:hover属性をサポートして使用する共通の親が必要であり、両方の要素がその子である必要があるということです。 "a"タグは、最も広くサポートされているタグです:ホバーですが、ユーザーがどのブラウザーとバージョンを使用しているか知っていれば、他の要素を使用して調べることができます。私はあなたのコードを見なければなりませんが、上記の原則が適用されている限り、あなたは行くべきです。 – Briguy37

+0

@ Briguy37 - 私が知っている限り、 'a 'でない要素に':hover'をサポートしていない唯一の主流ブラウザはIE6です。この問題は、標準に準拠した解決策を求めており、ブロック要素( 'div')を標準に準拠していないインライン要素(' a')の子要素として持っています。 [CSSplay](http://www.cssplay.co.uk/menus/latest-flyout.html)のCSSメニューに準拠した条件付きコメントを使用するソリューションがあります。 – detaylor

関連する問題