HTML で要素のカスケード効果を実現するにはどうすればよいですか?
P粉486138196
2023-08-28 16:39:50
<p>この要素のカスタム ツールヒントを作成したかったのですが、ツールヒントを表示する十分なスペースがないボックス内に含まれているため、切り取られてしまいます (実際には、<code> により表示されているまでスクロールできます) ;overflow</code> は <code>auto</code> に設定されていますが、スクロールせずに表示されるようにしたいです)。境界を超えて表示する方法はありますか? <code>z-index</code> を使用してみましたが、うまくいきませんでした。 </p>
<p>これは私が言ったことです:</p>
<p>
<pre class="brush:css;toolbar:false;">.box {
幅: 100ピクセル;
高さ: 100ピクセル;
オーバーフロー: 自動;
ボーダースタイル: ソリッド;
境界線の色: 赤;
}
.tooltip{
パディングトップ: 20px;
位置: 相対的;
表示: インラインブロック;
}
.tooltip .tooltiptext {
表示: なし。
最大幅: 60vw;
最小幅: 15vw;
背景色: 白;
ボーダースタイル: ソリッド;
境界線の色: #1a7bd9;
位置: 絶対;
z インデックス: 1000000;
}
.tooltip:hover .tooltiptext {
表示ブロック;
}</pre>
<pre class="brush:html;toolbar:false;"><div class='box'>
<div class='tooltip'> マウスホバー時にツールチップを表示します
<div class='ツールヒントテキスト'>
うわー、これはすごいですね、素晴らしいツールヒントのテキストです
</div>
</div>
</div></pre>
</p>
<p>編集: 重要なことは、ホバーリングは要素が含まれるボックスではなく、要素に対して機能するということです。 </p>
これを行う 1 つの方法は、ホバーされたテキストの上下に
::before
疑似要素を作成することです。これを行う方法はたくさんありますが、ツールチップをコンテナの外に表示したいだけの場合は、
z-index
やoverflow
を使用する必要はありません。ツールチップを相対コンテナ内の位置決めコンテキストに移動するだけです。あなたのコメントに基づいて、テキストの上にマウスを移動したときにのみツールヒントを表示したいので、マウスを移動したいものを相対コンテナでラップすることをお勧めします。これを説明するために、相対コンテナを使用することを決定した場所と比較して、外側のフレームに境界線を追加しました。
次に、正しい要素をターゲットにするために、
box:hover
をrelative-container:hover
に変更するだけです。説明のために、HTML 名とクラス名をよりセマンティックかつ簡潔になるように整理してみました。お役に立てれば!
###例###リーリー リーリー