検索
ホームページウェブフロントエンドhtmlチュートリアルCSS の軽量原則 - sub-selectors_html/css_WEB-ITnose の乱用を避ける

以下に示すように、CSS によって設定されたスタイルをカスケードできます [コード 1] [コード 1]

<style type="text/css">    span{font-size: 40px;}    .test{color:red;}</style><span class="test">CSS的低权重原则</span>

「CSS 低重量原則」を「フォント」に変更できます-size:40px」スタイルを選択すると、「color:red」スタイルを取得できます。 2 つの異なるセレクターによって設定されたスタイルが競合した場合はどうなりますか?以下に示すように [コード 2] [コード: CSS カスケード競合]

<style type="text/css">    span{font-size: 40px;color:green}    .test{color:red;}</style><span class="test">CSS的低权重原则</span>

「CSS の低重量原則」の色は何になりますか? 「span」に設定された「color:green」ですか、それとも「.test」に設定された「color:red」ですか?これには CSS セレクターの重みが関係します。

CSS セレクターは重み付けされます。異なるセレクターのスタイル設定が競合する場合、より重み付けされたセレクターによって設定されたスタイルが使用されます。重みのルールは次のとおりです。HTML タグの重みは 1、クラスの重みは 10、id の重みは 100 です。たとえば、p の重みは 1、「div em」の重みは 1+ です。 1=2, "strong.demo" ""#test.red" の重みは 10+1=11、"#test.red" の重みは 100+10=110 です。

[コード2]、セレクタースパンの重みは1、「.test」の重みは10なので、「CSS低重み原則」の色は赤になるはずです。

しかし、次のような場合はどうなるでしょうか [コード 3]。

<style type="text/css">span{font-size: 40px;}.test{color:red;}.test2{color: green}</style><span class="test test2">CSS的低权重原则</span>

span タグには、test と test2 という 2 つのクラスがあり、それらの重みは両方とも 10 です。では、「CSS の低重みの原則」はどの色にすべきでしょうか。 CSS セレクターの重みが同じ場合、スタイルは近接原則に従い、後で定義されるセレクターのスタイルが使用されます。 [コード3]はtest2の後に定義されているため、「.test2」を使用して色を緑色に設定します。

[コード4]のように「.test」と「.test2」の定義の位置を変更すると

<style type="text/css">span{font-size: 40px;}.test2{color: green}.test{color:red;}</style><span class="test test2">CSS的低权重原则</span>

「CSS低重み原則」の色が変わります赤になります。

近接性の原則は、クラス名の順序ではなく、セレクターの順序を指すことを強調する必要があります。CSS の低重みの原則> ; CSS の低重量原則 と違いはありません。

CSS セレクターの重みは見落とされやすい問題です。しかし、実はセレクターの重さには十分注意しておかないと、思わぬちょっとしたトラブルが起こることも少なくありません。たとえば、次の [コード 5]

<style type="text/css">#test{font-size: 14px;}</style><p id="test">CSS的选择符权重很重要</p>

では、「非常に重要」という 3 つの単語を赤色で設定する必要があります。どうすればよいでしょうか。オプション 1、[Code 6]

<style type="text/css">#test{font-size: 14px;}#test span{color: red}</style><p id="test">CSS的选择符权重<span>很重要</span></p>

などのサブセレクターを使用します。 オプション 2、[Code 7]

<style type="text/css">#test{font-size: 14px;}.font{color: red}</style><p id="test">CSS的选择符权重<span class="font">很重要</span></p>

などの新しいクラスを作成します。多くのエンジニアは、次の使用を推奨します。オプション 1。サブセレクターを使用すると、新しいクラスの追加を避け、HTML コードをより簡潔にすることができます。ただし、この時点でニーズが変化した場合は、[コード 8]

<style type="text/css">#test{font-size: 14px;}#test span{color: red}</style><p id="test">CSS的选择符权重<span>很重要</span>,我们要小心处理</p>
では、「取り扱い注意」を緑色に設定する必要があります。これは、[コード 9] のように実行できます。

<style type="text/css">#test{font-size: 14px;}#test span{color: red}.font{color:green}</style><p id="test">CSS的选择符权重<span>很重要</span>,我们要<span class="font">小心处理</span></p>
取り扱い注意は緑色に設定されると思っていましたセレクターのフォントによって異なりますが、セレクターの重みが高い「#test Span」が赤に設定されており、サブセレクターが新たに追加したコードに誤って影響を及ぼします。期待に応えたい場合は、コード [9] に従って

<style type="text/css">#test{font-size: 14px;}#test span{color: red}            /* 选择符权重为100+1=101 */#test .font{color:green}         /* 选择符权重为100+10=110 */</style><p id="test">CSS的选择符权重<span>很重要</span>,我们要<span class="font">小心处理</span></p>
を書き直す必要があります。また、オプション 2 を使用するとどうなるでしょうか。

<style type="text/css">#test{font-size: 14px;}.test{color: red}            /* 选择符权重为100+1=101 */.font2{color:green}         /* 选择符权重为100+10=110 */</style><p id="test">CSS的选择符权重<span class="font">很重要</span>,我们要<span class="font2">小心处理</span></p>
サブセレクターが使用されていないため、新しいコードを追加して新しいクラスをハングすることで、スタイル設定を正常に完了できます。

サブセレクターを使用すると、CSS セレクターの重みが大きくなり、HTML 構造が非常に安定していると確信できない限り、スタイルが上書きされる可能性が低くなります。再度変更されることはありません。子セレクターを使用してください。スタイルを簡単にオーバーライドして保守性を向上させるには、CSS セレクターの重みをできるだけ低くする必要があります。

使用するサブセレクターが少ない場合は、より多くのクラスを追加する必要があります。Web 標準が普及した初期の頃、多くのエンジニアは、サブセレクターを使用できるのであれば、クラスを追加するのは悪いことだと考えていました。授業の実践は「ポリクラス症候群」と呼ばれます。何度も練習した結果、複数のクラスにはそれほどデメリットはないと思います。むしろ、サブセレクターを使用するよりも、新しいクラスを追加する方がメンテナンスに有利です。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
HTMLの役割:Webコンテンツの構造HTMLの役割:Webコンテンツの構造Apr 11, 2025 am 12:12 AM

HTMLの役割は、タグと属性を使用してWebページの構造とコンテンツを定義することです。 1。HTMLは、読みやすく理解しやすいようなタグを介してコンテンツを整理します。 2。アクセシビリティとSEOを強化するには、セマンティックタグなどを使用します。 3. HTMLコードの最適化により、Webページの読み込み速度とユーザーエクスペリエンスが向上する可能性があります。

HTMLとコード:用語を詳しく見るHTMLとコード:用語を詳しく見るApr 10, 2025 am 09:28 AM

htmlisaspecifictypeofcodefocuseduructuringwebcontent

HTML、CSS、およびJavaScript:Web開発者に不可欠なツールHTML、CSS、およびJavaScript:Web開発者に不可欠なツールApr 09, 2025 am 12:12 AM

HTML、CSS、およびJavaScriptは、Web開発の3つの柱です。 1。HTMLは、Webページ構造を定義し、などなどのタグを使用します。2。CSSは、色、フォントサイズなどのセレクターと属性を使用してWebページスタイルを制御します。

HTML、CSS、およびJavaScriptの役割:コアの責任HTML、CSS、およびJavaScriptの役割:コアの責任Apr 08, 2025 pm 07:05 PM

HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

HTMLは初心者のために簡単に学ぶことができますか?HTMLは初心者のために簡単に学ぶことができますか?Apr 07, 2025 am 12:11 AM

HTMLは、簡単に学習しやすく、結果をすばやく見ることができるため、初心者に適しています。 1)HTMLの学習曲線はスムーズで簡単に開始できます。 2)基本タグをマスターして、Webページの作成を開始します。 3)柔軟性が高く、CSSおよびJavaScriptと組み合わせて使用​​できます。 4)豊富な学習リソースと最新のツールは、学習プロセスをサポートしています。

HTMLでの開始タグの例は何ですか?HTMLでの開始タグの例は何ですか?Apr 06, 2025 am 12:04 AM

Anexampleapalofastartingtaginhtmlis、それはaperginsaparagraph.startingtagsaresentionentientiontheyinitiateelements、definetheirtypes、およびarecrucialforurturingwebpagesandcontingthomedomを構築します。

CSSのフレックスボックスレイアウトを使用して、メニューの点線のラインセグメンテーション効果のセンターアラインメントを実現する方法は?CSSのフレックスボックスレイアウトを使用して、メニューの点線のラインセグメンテーション効果のセンターアラインメントを実現する方法は?Apr 05, 2025 pm 01:24 PM

メニューで点線のラインセグメンテーション効果を設計する方法は?メニューを設計するときは、通常、皿の名前と価格の間に左右に合わせることは難しくありませんが、真ん中の点線またはポイントはどうですか...

オンラインコードエディターはコード入力を実装するためにどのようなHTML要素を使用していますか?オンラインコードエディターはコード入力を実装するためにどのようなHTML要素を使用していますか?Apr 05, 2025 pm 01:21 PM

WebコードエディターのHTML要素分析では、多くのオンラインコードエディターを使用すると、ユーザーはHTML、CSS、およびJavaScriptコードを入力できます。最近、誰かが提案した...

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ヘンタイを無料で生成します。

ホットツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません