[解決済み] psuedo 要素を用いたスクロール/ホバー可能な CSS ツールチップ
2022-03-03 20:21:54
質問
ホバー可能なCSSのみのツールチップがあり、ほとんどの場合うまく動作していますが、最大高さを超えたときにスクロールバーを追加したいです。もし私が
max-height: 50px; overflow-y: auto
という擬似要素
:before
と
:after
が消えるのは
overflow
プロパティを使用します。
参照してください。 http://jsfiddle.net/accelerate/24xwru1n/
擬似要素を維持したまま、ツールチップにスクロールバーを追加する方法はありますか?または、それを動作させるために、私の擬似要素なしで生きなければならないのでしょうか?
どのように解決するのですか?
ホバー時にスクロールさせたい場合は、ラッパーを追加して、以下のようなCSSを適用する必要があります。
tooltip-text
:
HTML
<div class="tooltip tooltip-scroll">Hover over me for scrollbar
<div class="wrapper">
<span class="tooltip-text">Hello there<br/>abc<br/>def<br/>ghi<br/>jkl<br/></span>
</div>
</div>
.wrapper{
position:relative;
}
.tooltip {
transform: none;
margin: 50px;
}
.tooltip:hover > .tooltip-text, .tooltip:hover > .wrapper {
pointer-events: auto;
opacity: 1.0;
}
.tooltip > .tooltip-text, .tooltip >.wrapper {
display: block;
position: absolute;
z-index: 6000;
overflow: visible;
padding: 5px 8px;
margin-top: 10px;
line-height: 16px;
border-radius: 4px;
text-align: left;
color: #fff;
background: #000;
pointer-events: none;
opacity: 0.0;
-o-transition: all 0.3s ease-out;
-ms-transition: all 0.3s ease-out;
-moz-transition: all 0.3s ease-out;
-webkit-transition: all 0.3s ease-out;
transition: all 0.3s ease-out;
}
/* Arrow */
.tooltip > .tooltip-text:before, .tooltip > .wrapper:before {
display: inline;
top: -5px;
content: "";
position: absolute;
border: solid;
border-color: rgba(0, 0, 0, 1) transparent;
border-width: 0 .5em .5em .5em;
z-index: 6000;
left: 20px;
}
/* Invisible area so you can hover over tooltip */
.tooltip > .tooltip-text:after, .tooltip > .wrapper:after {
top: -20px;
content: " ";
display: block;
height: 20px;
position: absolute;
width: 60px;
left: 20px;
}
.wrapper > .tooltip-text {
overflow-y: auto;
max-height: 40px;
display: block;
}
<div class="tooltip">Hover over me for no scrollbar<span class="tooltip-text">Hello there<p/>abc<br/>def<br/>ghi<br/>jkl<br/></span></div>
<p/><p/><p/>
<div class="tooltip tooltip-scroll">Hover over me for scrollbar
<div class="wrapper">
<span class="tooltip-text">Hello there<br/>abc<br/>def<br/>ghi<br/>jkl<br/></span>
</div>
</div>
関連
-
[解決済み] <div style="display:none">によるテーブルデータの非表示。
-
[解決済み] How do I style a <select> dropdown with only CSS?
-
[解決済み] CSSでdivのアスペクト比を維持する
-
[解決済み] 最初の要素にクラスを指定するCSSセレクタ
-
[解決済み] javascript(またはjQuery)を使って::beforeや::afterなどのCSS疑似要素を選択し、操作する。
-
[解決済み] CSS画像を背景で伸縮させる - CSSのみで可能
-
[解決済み] CSS 100% height と padding/margin の関係
-
[解決済み] CSSでdivを縦にスクロールできるようにする
-
[解決済み] 2つのクラスを持つ要素に適用するCSSセレクタ
-
[解決済み】HTML5入力のプレースホルダの色をCSSで変更する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】bootstrap 3で画像にテキストを回り込ませる
-
[解決済み] CSS - div から画面の幅いっぱいまでオーバーフローさせる方法
-
[解決済み] ブラウザでCSSファイルが更新されない
-
[解決済み] テーブルの行にマージンを追加する方法 <tr> [重複]。
-
[解決済み] ヘッダー付きCSSボックス
-
[解決済み] Bootstrap 3 で列からパディングを削除する
-
[解決済み] CSSで背景画像を着色する方法を教えてください。
-
[解決済み] Font Awesomeで2つ以上のアイコンを重ねる/重ねるには?
-
[解決済み] select2入力の幅を設定する(Angular-uiディレクティブを使用)
-
[解決済み] 入力・テキストフィールドの背景色