CSS コンテンツ属性を使用して、マウスホバープロンプト (ツールチップ) 効果を実現します。

CSS コンテンツ属性を使用して、マウスホバープロンプト (ツールチップ) 効果を実現します。

なぜこのような効果を実現するのでしょうか。実は、この効果もタイトルプロンプトから派生したものですが、元のものが醜いため、jquery-ui のツールチップ、Bootstrap のツールチップなど、このような派生プラグインが多くあります。また、プラグインライブラリも多数あります。

場合によっては、これほど大きなプラグイン ライブラリは必要ありません。実際、ツールチップを 1 つか 2 つの場所に作成するだけでよいので、CSS コンテンツ プロパティと :before および :after 疑似要素を使用して、生成されたコンテンツを挿入できます。

効果は次のように確認します

HTMLコードは次のとおりです

<a class="dui-tips" data-tooltip="私は 3cbest.com のヒントです">w3cbest.com</a>

「data-」はカスタム属性です。たとえば、カスタム プロンプト data-tooltip="I am a 3cbest.com prompt" などです。コンテンツの attr を使用して、before および after content と組み合わせてカスタム プロンプトを呼び出します。attr(data-tooltip);

content: attr は簡単に理解できます。jq の .attr() を知っていれば、それが何を意味するかはわかります。この例では、content: attr を使用して、データ ツールチップの値を取得します。

CSSコード

.dui-ヒント {
位置: 相対的;
表示: インラインブロック;
カーソル: ポインタ;
}
 
.dui-tips[データツールチップ]:after、
.dui-tips[データツールチップ]:before {
可視性: 非表示;
位置: 絶対;
上位: 50%;
左: 100%;
遷移: すべて .3;
}
 
.dui-tips[データツールチップ]:after {
 
コンテンツ: attr(データツールチップ);
変換: translate(-5px, -50%);
空白: 前;
パディング: 5px 10px;
背景色: rgba(0, 0, 0, 0);
色: rgba(255, 255, 255, 0);
}
 
.dui-tips[データツールチップ]:before {
コンテンツ: '';
高さ: 0;
幅: 0;
変換: translate(-10px, -50%);
境界線の幅: 5px 5px 5px 0;
境界線のスタイル: solid;
境界線の色: 透明 rgba(0, 0, 0, 0) 透明 透明;
}
.dui-tips:hover:after、.dui-tips:hover:before {
遷移: すべて .3;
可視性: 可視;
 
}
.dui-tips:hover:after {
色: rgba(255, 255, 255, 1);
背景色: rgba(0, 0, 0, 0.8);
変換: translate(5px, -50%);
}
 
.dui-tips:hover:before {
境界線の色: 透明 rgba(0, 0, 0, 0.8) 透明 透明;
変換: translate(0px, -50%);
}

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

<<:  MySQL InnoDB ロックの概要

>>:  Virtualbox に Centos7 仮想マシンをインストールする詳細なグラフィック チュートリアル

推薦する

Windows 10 Home Edition に Docker をインストールする方法

最近、プロジェクトをアップグレードするために Docker を使用しました。これまで使用したことがな...

HTML フォーム送信アクションと URL ジャンプアクションの違い

フォームのアクションは URL ジャンプとは異なります。フォームはバックグラウンドにデータを渡すこと...

MySQLデータ内の多数の改行と復帰に対する解決策

目次問題を見つける1. 改行と復帰を削除する方法2. SELECTクエリで「改行と復帰」を無視する方...

SQLでEXPLAINコマンドを使用する方法

日常業務では、実行に時間のかかる SQL ステートメントを記録するために、スロー クエリを実行するこ...

Vueフォームバインディングとコンポーネントの詳細な説明

目次1. 双方向データバインディングとは1. データの双方向バインディングを実装する必要があるのはな...

Vue は Ctrip のカルーセル効果を模倣します (スライディング カルーセル、以下は高度に適応)

まずケースを見てみましょう。vue+swiper を使用して実装します。スライドの高さが異なる場合、...

MySQLでルートユーザーのパスワードを変更する方法

方法1: SET PASSWORDコマンドを使用する mysql> username@loca...

Linux コマンド クエリ アプレットでの WePY クラウド開発の実践

みなさんこんにちは。今日は Linux コマンド クエリ アプレットでの WePY クラウド開発の実...

docker-compsoe を使用してフロントエンドとバックエンドを分離したプロジェクトをデプロイする方法

事前に言っておくDocker を使用すると非常にシンプルなデプロイメント環境を実現できることは誰もが...

純粋なCSSで立体的な画像配置効果を実現するサンプルコード

1. 要素の幅/高さ/パディング/マージンのパーセンテージ基準要素の幅/高さ/パディング/マージンの...

Docker で ElasticSearch をデプロイする方法

1. ElasticSearch とは何ですか? Elasticsearch も Java で開発さ...

HTML CSS を使用して div またはテーブルを指定した位置に固定する方法

CSSコードコンテンツをクリップボードにコピー.bottomTable{背景色: rgb (249,...

MySQLにおけるrow_numberの実装プロセス

1. 背景一般的に、データ ウェアハウス環境では、row_number 関数を使用して特定のディメン...

JS におけるメモリと変数の保存についての詳細な説明

目次序文JSマジックナンバー数値の保存バイナリ変換方法なぜ 0.1 + 0.2 !== 0.3 なの...