CSSカスケーディングメカニズムについての簡単な説明

CSSカスケーディングメカニズムについての簡単な説明

CSS にカスケード メカニズムがあるのはなぜですか?

CSS では、同じ要素の特定のプロパティに同時に影響を与えるスタイルが複数存在する可能性があるため、カスケード メカニズムによって、作成者 (コードを作成する人)、ユーザー (ページを閲覧する人)、およびユーザー エージェント (通常はブラウザー) 間のスタイルの競合を解決できます。

カスケード内の各スタイル ルールには重み値があります。これらのルールが複数同時に有効になっている場合は、重みが最も高いルールが優先されます。一般的に、作成者が指定したスタイルのウェイト値はユーザーのスタイルのウェイト値よりも高く、ユーザーのスタイルのウェイトはクライアント (ユーザー エージェント) のウェイト値よりも高くなります。一般的な重量値とオブジェクト、あるかどうか!重要なのは、特異性が位置に関係していることです。積み重ね順では、以下の重量値は小さいものから大きいものまでです

(1)ユーザーエージェントスタイル

(2)ユーザー一般スタイル

(3)著者の一般的なスタイル

(4)著者の重要なスタイル(!important)

(5)ユーザーの重要なスタイル(!important)

(6)2つのスタイルが同じコード(たとえば、両方とも作成者(コード)から来ている)から来ていて、それらのスタイル宣言が同等に重要である場合、それらは詳細度に基づいて計算され、詳細度の高いスタイルが低いスタイルを上書きします。

(7)具体性が同じであれば、スタイルが新しいほど優先順位が高くなります。

ユーザーが設定した重要なスタイルが、作成者が設定した重要なスタイルよりも優先されるのはなぜでしょうか。その理由は、ページのフォント サイズの調整など、ユーザーが特別な要件を満たしやすくするためです。

セレクタの特異性の計算

(1)要素のstyle属性に宣言が現れた場合、aは1としてカウントされる。

(2)bはセレクタ内の全てのIDセレクタの数の合計に等しい

(3)cはセレクタ内のすべてのクラスセレクタ、属性セレクタ、疑似クラスセレクタの合計に等しい。

(4)dはセレクタ内のすべてのタグセレクタと疑似要素セレクタの合計に等しい。

abcd はセレクターの詳細度です。比較順序は a から始まり、大きい方が優先されます。

知らせ:

  1. 継承は優先度が最も低く、詳細度も低い
  2. 結合子(+、>など)とユニバーサルセレクタ(*)の特異性は0です。
.box{} /*特異度=0,0,1,0*/
.box div{} /*特異度=0,0,1,1*/
#nav li{} /*特異度=0, 1, 0, 1*/
p:first-line{} /*特異度=0,0,0,2*/
style="" /*詳細度=1,0,0,0*/

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

<<:  MySQL のスローログ監視の誤報問題の分析と解決

>>:  HTML フォームタグチュートリアル (3): 入力タグ

推薦する

MySQL データ アーカイブ ツール mysql_archiver の詳細な説明

目次I. 概要2. pt-archiverの主なパラメータ3. mysql_archiverのインス...

Nginx で WordPress 擬似静的を設定する方法の例

Baidu の擬似静的の説明を引用します。擬似静的は、実際の静的に相対的です。通常、検索エンジンの使...

シンプルなカルーセル チャートを実装するための JavaScript の最も完全なコード分析 (ES5)

この記事では、シンプルなカルーセル効果を実現するためのJavaScriptの具体的なコードを参考まで...

JDBC を使用して Mysql データベースに接続する際に発生する可能性のある問題の概要

まず、いくつかの概念を明確にします。 JDBC: Javaデータベース接続、Oricalによって規定...

JS で配列の重複排除を実装する 7 つの方法

目次1. Set()+Array.from() を使用する2. 2層ループ+アレイ接合方式の使用3....

MySQL における datetime と timestamp の違いと選択

目次1 違い1.1 スペース占有1.2 表現範囲1.3 タイムゾーン2 テスト3つの選択肢MySQL...

MySQL GRANT ユーザー認証の実装

承認とは、ユーザーに特定の権限を付与することです。たとえば、新しく作成したユーザーに、すべてのデータ...

Ubuntu 20.04 と NVIDIA ドライバーのインストールに関するチュートリアル

Ubuntu 20.04をインストールする NVIDIAドライバーをインストールする Pytouch...

JavaScript 配列重複排除問題の詳細な研究

目次序文 👀リサーチを始めましょう🐱‍🏍オリジナル🧶 indexOf を使用した元の方法の最適化 ✍...

MySQL binlog を使用して誤って削除されたデータベースを復元する方法

目次1 現在のデータベースの内容を表示し、データベースをバックアップする2 bin_log関数を有効...

vue3 における vuex と pinia の落とし穴

目次導入インストールと使用方法文章の相違点と類似点の簡単な比較VuexとPiniaの長所と短所Pin...

JavaScript でのプロキシの使用を理解するための記事

目次エージェントとは何かプロキシの基礎知識ハンドラオブジェクトのメソッドプロキシでできること参考文献...

Spark SQL の 4 つの一般的なデータ ソースの詳細な説明

汎用ロード/書き込みメソッドオプションを手動で指定するSpark SQL の DataFrame イ...

dockerでrabbitmqをインストールすると管理ページに入れなくなる問題

1. 環境整備Tencent Cloud Server CENTOS 7 バージョンDockerコン...

MySql キャッシュ クエリの原理とキャッシュ監視およびインデックス監視の概要

クエリキャッシュ1. クエリキャッシュの動作原理クエリ ステートメントを実行する前に、MySQL は...