検索
ホームページウェブフロントエンドCSSチュートリアルCSS ルールがカスケードする場合の優先アルゴリズム

css ルールの優先順位は、web フロントエンド開発者が理解する必要がある概念です。スタイルを追加するには、一般的に 4 つの方法が使用されます。

1. インライン スタイル
2. 埋め込みスタイル
3. 外部スタイル
4. ユーザー スタイル

インライン スタイルは醜い、シャトルインしますhtml ドキュメントは html 要素と絡み合っており、web フロントエンド開発者にとっては多大な問題を引き起こします。多くの場合、次のように表示されます:

<p style="color:red;">this is a paragraph.</p>

埋め込みスタイルは、インライン スタイルよりも紳士的です。これらは html ドキュメントにも存在しますが、html 要素と絡み合うことを嫌います。これらは、

<style type="text/css" media="screen"> 
    p{ 
        color : red; 
    } 
</style>

外部スタイルは貴族です。html に留まりたくないので、単に外部ファイルの形式で独立して存在します。通常、html にインポートするには 要素または @import ステートメントを使用します。

<link rel="stylesheet" type="text/css" href="style.css" media="screen" />

できるだけ外部スタイルを使用する必要があります。理由はたくさんあると思います。誰もが知っているので、繰り返しません。

上記の 3 つとは少し異なるユーザー スタイルもあります。ie ブラウザを使用している場合は、[ツール] – [インターネット オプション] – [全般] – [外観] – [アクセシビリティ] – [ユーザー スタイル] でユーザー スタイルを見つけて追加できます。シートの場所 (中国語版の ie ブラウザを持っていないことをお詫びします)。

スタイルを追加する方法はたくさんあるため、スタイルのカスケードを避けるのは困難です。例:

<p class="intro" style="color:red;">this is a paragraph.</p>

上記のインライン スタイルを使用しながら、外部スタイルでも使用します:

p{ 
    color : yellow; 
}

要素もまだあります

p.intro{ 
    color : blue; 
}

このようにして、同じ要素の同じ属性色の値を指定する複数の css ルールが存在します。この状況はカスケードと呼ばれます。カスケードが発生すると、css パーサーは優先アルゴリズムに基づいて最終的に選択された値を決定します。

優先順位アルゴリズムでは、次の 3 つの側面を順番に考慮します。
1. css ルールの重要性とソース
2. css ルールの特殊性
3. cssドキュメント内でルールが出現する順序

アルゴリズムのプロセスは 4 つのステップに分かれています: p >

1. 要素の特定の属性について、その属性の値を指定するすべての css ルールをリストします。 上記の例では、class="intro" の

要素に、color 属性を指定する 3 つの css ルールがあります。

2. 発言の重要性と出典に応じて優先順位を付ける

重要度には 2 つのタイプがあります:
重要と通常 (つまり、 、重要ではありません)

css ルールの後に ! important を追加する重要性は、追加しない場合よりも重要です。

ソースは 3 つあります:

ユーザー エージェント スタイルシート – ブラウザのデフォルト スタイル

作成者スタイルシート – 開発者定義のスタイル

ユーザー スタイルシート – ブラウザのユーザー定義スタイル

優先順位重要性とソースの順序は低いものから高いものまで:

ユーザー エージェント スタイルシート

ユーザー スタイル シートの通常のルール

作成者スタイル シートの通常のルール

オーサラー スタイル シートの重要なルール

ユーザー スタイル シートの重要なルール

上記の並べ替え後、優先度の高い css ルールがある場合、その他すべての競技ルールについては、アルゴリズムは終了し、最も高い優先順位で指定された値が返されます。最も高い優先度を持つ css ルールが複数ある場合、それらは引き続き競合し、アルゴリズムはステップ 3 に入ります。

3. 特異度による並べ替え

css は、複数のルールの各ルールで指定されたセレクターの特異度の値を計算します。この値が大きいほど、優先度が高くなります。

特殊性の値は、a、b、c、d の 4 つの整数で構成される配列のような値です。a の重みが最も高く、d の重みが最も低くなります。セレクター特異性の値の計算方法は次のとおりです。
ルールがインライン スタイルの場合、 a = 1
ルールがセレクターで指定されている場合、セレクターに表示される id セレクターの数は b の値になります
/>ルールがセレクタで指定されている場合、セレクタ内に出現する属性セレクタ(クラス セレクタを含む)または疑似クラス セレクタの数の合計が c の値になります。
ルールが指定されている場合by selector、セレクター内に出現する要素セレクター、または疑似要素セレクターの数の合計が d の値になります。

ユニバーサル セレクター * の特殊性の値は 0,0,0,0 です。

公式 web サイトでは、理解を深めるためにいくつかの例が示されています。

特異度の値に従って並べ替える場合、a の重みが最も高いため、最初に a が比較され、a が同じ場合は b が比較されます。したがって、b、c、d の値がどれほど大きくても、インライン スタイルが常に最も高い特異性を持ちます。

上記の特異性に従って並べ替えた後、他のすべての競合ルールよりも高い優先順位を持つ css ルールが存在する場合、アルゴリズムは終了し、最も高い優先順位で指定された値が返されます。最も高い優先度を持つ css ルールが複数ある場合、それらは引き続き競合し、アルゴリズムはステップ 4 に入ります。

4. ドキュメント内で css ルールが現れる順序を比較します。

後に現れるものは、常に前に現れるものよりも高い優先順位を持ちます。最後に表示されるステートメントは、プロパティの値として使用されます。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
利用CSS怎么创建渐变色边框?5种方法分享利用CSS怎么创建渐变色边框?5种方法分享Oct 13, 2021 am 10:19 AM

利用CSS怎么创建渐变色边框?下面本篇文章给大家分享CSS实现渐变色边框的5种方法,希望对大家有所帮助!

css ul标签怎么去掉圆点css ul标签怎么去掉圆点Apr 25, 2022 pm 05:55 PM

在css中,可用list-style-type属性来去掉ul的圆点标记,语法为“ul{list-style-type:none}”;list-style-type属性可设置列表项标记的类型,当值为“none”可不定义标记,也可去除已有标记。

css与xml的区别是什么css与xml的区别是什么Apr 24, 2022 am 11:21 AM

区别是:css是层叠样式表单,是将样式信息与网页内容分离的一种标记语言,主要用来设计网页的样式,还可以对网页各元素进行格式化;xml是可扩展标记语言,是一种数据存储语言,用于使用简单的标记描述数据,将文档分成许多部件并对这些部件加以标识。

css3怎么实现鼠标隐藏效果css3怎么实现鼠标隐藏效果Apr 27, 2022 pm 05:20 PM

在css中,可以利用cursor属性实现鼠标隐藏效果,该属性用于定义鼠标指针放在一个元素边界范围内时所用的光标形状,当属性值设置为none时,就可以实现鼠标隐藏效果,语法为“元素{cursor:none}”。

css怎么实现英文小写转为大写css怎么实现英文小写转为大写Apr 25, 2022 pm 06:35 PM

转换方法:1、给英文元素添加“text-transform: uppercase;”样式,可将所有的英文字母都变成大写;2、给英文元素添加“text-transform:capitalize;”样式,可将英文文本中每个单词的首字母变为大写。

css怎么设置i不是斜体css怎么设置i不是斜体Apr 20, 2022 am 10:36 AM

在css中,可以利用“font-style”属性设置i元素不是斜体样式,该属性用于指定文本的字体样式,当属性值设置为“normal”时,会显示元素的标准字体样式,语法为“i元素{font-style:normal}”。

rtl在css是什么意思rtl在css是什么意思Apr 24, 2022 am 11:07 AM

在css中,rtl是“right-to-left”的缩写,是从右往左的意思,指的是内联内容从右往左依次排布,是direction属性的一个属性值;该属性规定了文本的方向和书写方向,语法为“元素{direction:rtl}”。

怎么设置rotate在css3的旋转中心点怎么设置rotate在css3的旋转中心点Apr 24, 2022 am 10:50 AM

在css3中,可以用“transform-origin”属性设置rotate的旋转中心点,该属性可更改转换元素的位置,第一个参数设置x轴的旋转位置,第二个参数设置y轴旋转位置,语法为“transform-origin:x轴位置 y轴位置”。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。