ハイパーリンクAタグを学ぶ

ハイパーリンクAタグを学ぶ

聞く:
CSS を使用してハイパーリンクのスタイルを設定しましたが、ホバーしても機能しません。なぜこのようなことが起こるのでしょうか?ブラウザの問題でしょうか?
答え:
ブラウザの問題かもしれないと思うかもしれませんが、スタイル定義の順序が間違っている可能性が高いです。さまざまな状態の接続スタイルを確認できるようにするには、正しいスタイルの順序は次のようになります。
「link-visited-hover-active」または「LVHA」(略語)。
コアコンテンツ:
各セレクターには「詳細度」があり、2 つのセレクターが同じ要素に適用された場合、詳細度の高いセレクターが優先されます。例えば:
P.hithere {color: green;} /* 特異度 = 1,1 */
P {color: red;} /* 特異度 = 1 */
class=hithere が設定された段落コンテンツは、赤ではなく緑で表示されます。両方のセレクターで色を設定しますが、より詳細度の高いセレクターが優先されます。
疑似クラスは詳細度にどのように影響しますか?これらはまったく同じ重み付け値を持ち、次のスタイルは同じ詳細度の重み付け値を持ちます。
A:link {color: blue;} /* 特異度 = 1,1 */
A:active {color: red;} /* 特異度 = 1,1 */
A:hover {color: magenta;} /* 特異度 = 1,1 */
A:visited {color: purple;} /* 特異度 = 1,1 */
これらはハイパーリンクのスタイル設定です。ほとんどの場合、これらのスタイルをいくつか同時に設定する必要があります。たとえば、未訪問のハイパーリンクには、マウスを移動してクリックしたときに「マウスオーバー」と「マウスアクティブ化」で異なるスタイルを設定できます。上記の 3 つのルールはすべてハイパーリンクに適用でき、すべてのセレクターは同じ詳細度を持つため、ルールに従って最後のスタイルが「優先」されます。したがって、「アクティブ」スタイルは常に「ホバー」スタイルによって上書きされるため(つまり、「ホバー」が優先される)、表示されません。次に、訪問済みのハイパーリンクにマウスを移動したときに何が起こるかを分析してみましょう。結果は常に紫色になります :(、これは「訪問済み」スタイルが常に他の状態スタイル ルール (「アクティブ」や「ホバー」を含む) よりも優先されるためです。
このため、CSS1 では次のスタイルの順序を推奨しています。
A:リンク
A: 訪問した
A:ホバー
A:アクティブ
実際、ハイパーリンクは「未訪問」状態と「訪問済み」状態の両方に同時に存在できないため、最初の 2 つのスタイルの順序は入れ替えることができます。 ( :link は「未訪問」を意味します。なぜそのように定義されないのかはわかりません。)
CSS2 では、擬似クラスを「グループ」内に表示できるようになりました。次に例を示します。
A:visited:hover {color: maroon;} /* 詳細度 = 2,1 */
A:link:hover {color: magenta;} /* 特異度 = 2,1 */
A:hover:active {color: cyan;} /* 特異度 = 2,1 */
これらは同じ特異性を持っていますが、根本的に異なる獣に適用されるため、競合しません。たとえば、ホバーアクティブの組み合わせを取得できます。
この記事に含まれる「特異性」をどのように理解しますか?詳細度は、単純に連結されていない数字の文字列を理解できます。上記の例:
P.hithere {color: green;} /* 特異度 = 11 */
P {color: red;} /* 特異度 = 1 */
これは小数点に基づく単純な演算のようです。ただし、「特異度」の計算では 10 進アルゴリズムは使用できません。たとえば、15 個のセレクターを一緒に使用すると、その「特異度」の重み値は、単純なクラス セレクターの重み値よりも低くなります。例:
.hello {color: red;} /* 特異度 = 10 */
HTML BODY DIV UL LI OL LI UL LI OL LI UL LI OL LI (color: green;} /* 詳細度 = 15 */
「10」は実際には「1」の後に「0」が続くもので、「ten」ではありません。 16 進数を使用して、前のスタイル ルールの詳細を次のように記述できます。
.hello {color: red;} /* 特異度 = 10 */
HTML BODY DIV UL LI OL LI UL LI OL LI UL LI OL LI (color: green;} /* 詳細度 = F */
唯一の問題は、2 番目のスタイル ルールに 2 つ以上のセレクターを追加すると、詳細度が「17」になり、再び混乱が生じる可能性があることです。実際には、特異度は無限である可能性があるため、さらなる混乱を避けるために、特異度の値をコンマで区切ることをお勧めします。
ウェブマスターの提案: 特定度の加重値を繰り返し計算する練習をしてください。ウェブサイトの CSS 設定は、ページを制御する能力を反映します。動的なウェブサイトの開発では、CSS の状態も非常に重要です。より多くの資料を読み、より多く練習し、123WORDPRESS.COM にもっと頻繁にアクセスしてください。このサイトが気に入ったら、ぜひ宣伝してください!読んでくれてありがとう

<<:  CSS3 列を使用したカード ウォーターフォール レイアウトを実装するためのサンプル コード

>>:  MySQL ロック関連知識のまとめ

推薦する

MySQL クエリのソートとクエリ集計関数の使用法の分析

この記事では、例を使用して、MySQL クエリのソート関数とクエリ集計関数の使用方法を説明します。ご...

Vue-Jest自動テストの基本構成の詳しい説明

目次インストール構成よくある間違い事前テスト作業依存関係の扱いインスタンスとDOMを生成する要約する...

Docker 経由で Redis 6.x クラスターをデプロイする方法

システム環境: Redis バージョン: 6.0.8 Docker バージョン: 19.03.12シ...

ethers.js を使用して Solidity スマート コントラクトをデプロイする方法

Ethereum 上で DApps を開発したことがある場合は、フロントエンド JavaScript...

Vue で親コンポーネントから子コンポーネントにデータを渡すいくつかの方法

最近、Vue のソースコードを勉強していて、Vue で親コンポーネントと子コンポーネント間でデータを...

Linux仮想メモリについての簡単な説明

目次起源仮想メモリページングとページテーブルメモリのアドレス指定と割り当て関数プロセスメモリ管理デー...

CSS3で実装された水平ヘッダーメニュー

結果:実装コードhtml <nav class="dropdownmenu"...

MySQL 8.0 に移行する際の注意点 (要約)

パスワードモードPDO::__construct(): サーバーがクライアントに不明な認証方法を要求...

vue3 プロジェクトを素早く構築し、関連機能を紹介する vite+ts の詳細な説明

目次ヴィテ建てる構成vite.config.tsルーターtsタイプvue3 の知識設定小道具コンテク...

mysql 計算関数の詳細

目次2. フィールドの連結2. MySQL関数の例をいくつか挙げてください。 2.1 シンボル処理2...

クラウド サーバー Ubuntu_Server_16.04.1 に MySQL をインストールしてリモート接続を有効にする方法

1. MySQLをインストールします。対応するソフトウェアをインストールするには、次の 3 つのコマ...

nginx を使用してカナリアリリースをシミュレートする方法

この記事では、ブルーグリーン デプロイメントと、nginx を使用してカナリア リリースを最も簡単な...

MySQL DML言語操作例

追加説明、外部キー: 外部キーを使用しないでください。すべての外部キーの概念はアプリケーション層で解...

VMware vSphere 6.7 (ESXI 6.7) のグラフィック インストール手順

環境: VMware VCSA 6.7 (VMware-VCSA-all-6.7.0-8169922...

JavaScript ファイルの読み込みとブロックの問題: パフォーマンス最適化のケーススタディ

まず質問させてください。HTML ページを作成するときに、外部から JS ファイルをインポートする場...