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 仮想マシンをインストールする詳細なグラフィック チュートリアル

推薦する

docker を使用して hbase をデプロイする方法

スタンドアロンの hbase について、まずは説明しましょう。 Dockerをインストールするまず ...

JSはタイムラインの自動再生を実現する

最近、次のような効果を実装しました。再生ボタンをクリックするとタイムラインの再生が開始され、一時停止...

リストループスクロールを実現するための HTML+CSS+JavaScript サンプルコード

説明: 指定された時間内に前のノードのコンテンツを置き換えるタイマーを設定します。 1. キーコード...

WeChatミニプログラムページで値を返す4つの解決策のまとめ

目次使用シナリオ解決1. globalDataを使用して実装する2. ローカルキャッシュストレージを...

ラベルとスパンの幅設定が無効である問題の解決

デフォルトでは、ラベルとスパンの幅の設定は無効です。一般的に、表示属性は必須ですコードをコピーコード...

MySQL 8.0.17 のインストールと設定のグラフィックチュートリアル

この記事は、参考のためにMySQL 8.0.17のインストールと設定のグラフィックチュートリアルを記...

VMware仮想マシンを使用してUbuntu 20.04をインストールする完全なチュートリアル

Ubuntu は比較的人気のある Linux デスクトップ システムです。最近、Ubuntu 20....

HTML4とHTML5の違い: 入力にフォーカス実装コードを追加する方法

html4:コードをコピーコードは次のとおりです。 <フォーム> <p>&l...

CSS 画面サイズ適応実装例

CSS 画面サイズの適応を実現するには、まず CSS3 @media メディア クエリを導入する必要...

Vue における LocalStorage と SessionStorage の違いと使い方

目次LocalStorageとはSessionStorageとはLocalStorage と Ses...

Vueプロジェクトでのトークン検証ログイン(フロントエンド部分)

この記事の例では、Vueプロジェクトでのトークン検証ログインの具体的なコードを参考までに共有していま...

HTMLフォーム送信方法のケーススタディ

フォームの送信方法をまとめると次のようになります。 1. 送信ボタンを使用して送信します。送信ボタン...

dockerでビルドしたnacos1.3.0の実装

1. nacosデータベースを再開します。データベース名nacos_configユーザー名とパスワー...

react+reduxを使用してカウンター機能を実装すると発生する問題

Redux はシンプルな状態マネージャーです。その歴史をたどることはしません。使用法の観点から見ると...

MySQL ビューの原理と使用法の詳細な分析

序文: MySQL では、ビューはおそらく最も一般的に使用されるデータベース オブジェクトの 1 つ...