私の目的は、クリック可能なテキスト コンテンツを表示し、領域全体を変更するホバーがあり、div またはテキスト全体がロールオーバーされたときに飛び散らない領域を作成することです。cssでやりたい。
たとえば、500 x 500 px の div が必要です。この div の内部には、クリック可能にする必要がある p と a があります。正常に動作します。何かのようなもの:
<div style="width:500px; height:500px;">
<p> xtext <a>xlink</a> </p>
<p> xtext <a>xlink</a> </p>
</div>
そして、最初のdiv全体をカバーするロールオーバー(ホバー)機能を備えたdivを一番上に置き、透明度が0.0に設定されているときにロールオーバーされるまで、透明な色でdiv全体をぼやけさせ、消えたように見えます. しかし、最初の div からのリンクをクリック可能にしたい (これを行うには、この 2 番目の div を指定しますpointer-events:none
)。このコード* を最初の div 内に配置すると、合計で次のようになります。
<div style="width:500px; height:500px;">
*<div class="divhover" style="width:500px; height:500px; position:absolute;">
</div>
<p> xtext <a>xlink</a> </p>
<p> xtext <a>xlink</a> </p>
</div>
css クラスによるスタイリング:
div.divhover {
background-color: hsla(0, 100%, 100%, 0.5); }
div.divhover:hover {
background-color: hsla(0, 100%, 100%, 0.0);
pointer-events: none; }
がないpointer-events:none
場合、これは通常のホバー機能のように機能します。マウスが div 領域にない場合、透明度 0.5 の白いレイヤーがあります。マウスがその上にある場合、透明度は 0.0 で、覆われていないかのように見えます。ただし、これでは、テキスト要素とリンク要素をクリックすることはできません。
ではpointer-events:none
、テキストとリンクをクリックできますが、カーソルが p または a 要素の上にあるとホバーが非アクティブになります。これにより、カーソルが動き回るとdiv全体が飛び出し点滅し、カーソルがリンク上にある場合は急速に点滅します! これはいらない!
css/html のノウハウをたくさん持っている皆さんが私を助けてくれることを願っています (私はあまり知りません)。ここまでたどり着く前に、最初の div のテキストとリンクをクリックできるように設定z-index:-1
してみました。.divhover:hover
またposition:absolute
、2 番目の div をページから移動してみました ( left:2000px
)。で同じことを行う方法が異なるだけなので、これらはどちらも同じ状況になりましたpointer-events
。
点滅を確認できるjsfiddleは次のとおりです。
ここではわかりませんが、 を取り出すpointer-events:none
と、リンクとテキストはクリックできなくなります。