検索
ホームページウェブフロントエンドCSSチュートリアルCSS の面接での 2 つの質問をチェックして、基礎をテストしてください。

Jianweizhizhu、この記事では、基礎をテストするための CSS 面接の興味深い質問を 2 つ紹介します。

CSS の面接での 2 つの質問をチェックして、基礎をテストしてください。

今日フォーラムでとても興味深い質問を見つけました。簡単なコードは次のとおりです:

<div>
    <p id="a">First Paragraph</p>
</div>

スタイルは次のとおりです:

p#a {
    color: green;
}
div::first-line {
    color: blue;
}

お聞きしたいのですが、タグのテキストの色は <p></p> 緑ですか、それとも青ですか?

興味深いことに、ここでの最終結果は青です。これは、color: blue が有効になることを意味します。 [推奨される学習: css ビデオ チュートリアル ]

CSS の面接での 2 つの質問をチェックして、基礎をテストしてください。

いいえ、通常、ID セレクターは疑似クラス セレクターよりも高い優先順位を持つべきではないでしょうか。 ?ここで疑似クラス セレクターの優先順位が高いのはなぜですか?

そして、デバッグ モードをオンにした後、<p></p> 要素を配置すると、color: green のみが有効になり、div は有効になりませんでした。 :: が見つかりました。最初の行 のスタイル定義:

CSS の面接での 2 つの質問をチェックして、基礎をテストしてください。

## 1 つ上のレベルに進み、<p></p>
のスタイル ルールを見つけた場合のみです。 最後のルールを見つけることができますか? そのようなルールは以下で確認できます:

CSS の面接での 2 つの質問をチェックして、基礎をテストしてください。

したがって、ここでは、

# が次のとおりであることは明らかです。 ## タグは親要素を継承します <div> このルールは要素の最初の行に適用され、元の ID セレクターで定義されている <code>color: green を上書きします。 もう一度確認してください

ここで、もう 1 つのわかりにくい点は、なぜ ID セレクターの優先順位が

::first-line

よりも高いのかということです。セレクターのほうが低いのです。 。 いくつかの簡単な試みをしてみましょう:

次のデモは、

::first-line

スタイルとさまざまなセレクターが連携した場合の優先順位の比較を示しています。 #!重要 ルールが含まれています: 段落 1 はタグ セレクターを介して灰色に設定されます

    段落 2 はクラス セレクターを介して灰色に設定されます
  • 3 番目の段落は、ID セレクターによってグレーに設定されます
  • 4 番目の段落は、!重要な bash によってグレーに設定されます
  • 要約すると、各段落を同時に使用します。
  • ::first-line
セレクター。

<h2 id="first-line-nbsp-vs-nbsp-tag-nbsp-selector">::first-line vs. tag selector</h2>
<p>This paragraph ...</p>  

<h2 id="first-line-nbsp-vs-nbsp-class-nbsp-selector">::first-line vs class selector</h2>
<p class="p2">This paragraph color i...</p>  

<h2 id="first-line-nbsp-vs-nbsp-ID-nbsp-selector">::first-line vs ID selector</h2>
<p id="p3">This paragraph color is set ...</p>  

<h2 id="first-line-nbsp-vs-nbsp-important">::first-line vs !important</h2>
<p id="p4">This paragraph color is ....</p>
errreeCodePen デモ -- ::first-line: デモ

https://codepen.io/KittyGiraudel/pen/kWabaa/569e082a67400f5fb39a96030d0e9b6c<p></p># #効果を見てください: <p></p>
<p></p>#どのセレクターであっても、優先度は

::first-line## ほど高くないことがわかります。 #。 CSS の面接での 2 つの質問をチェックして、基礎をテストしてください。

その理由は、

::first-line は実際には疑似クラスではなく疑似要素であり、それによって選択されたコンテンツは実際には子として扱われるためです。要素の要素。処理は

::before

および ::after と似ています。したがって、親要素のカラー ルールは ## を介した単なるカスケード関係です。 #: :first-line 独自に定義されたルールの方が優先されます。 これが、MDN ドキュメントでは二重コロンの記述方法がより推奨される理由です (もちろん、ブラウザは単一コロンの記述方法をサポートしています) -- MDN -- ::first-行

もう 1 つの質問ですが、MDN エラーの例を教えてください。興味深い現象

CSS の面接での 2 つの質問をチェックして、基礎をテストしてください。上記の質問を終えた後。非常によく似た別の質問を見てみましょう。

:not を紹介する MDN ページには、例があります:

p {
  color: #444;
}
p::first-line {
  color: deepskyblue;
}

.p2 {
  color: #444;
}
.p2::first-line {
  color: tomato;
}

#p3 {
  color: #444;
}
#p3::first-line {
  color: firebrick;
}

#p4 {
  color: #444 !important;
}
#p4::first-line {
  color: hotpink;
}

は、

:not(p)

を意味します。は <p></p> タグの要素ではありません。ただし、次の HTML 構造における上記の CSS セレクターの実際の結果は完全に正しくありません。

/* Selects any element that is NOT a paragraph */
:not(p) {
  color: blue;
}

結果は次のとおりです:

CodePen デモ -- :not pesudo デモ

https://codepen .io/ Chokcoco/pen/KKZbWjyCSS の面接での 2 つの質問をチェックして、基礎をテストしてください。

は、

:not(p)

が引き続き <p></p> <p></p> 要素を選択できることを意味します。はい、結果は複数のブラウザーで同じです。

これを見たとき、立ち止まって考えてみてください。なぜ <p></p> 要素の色は color: blue のままなのでしょうか? ######どうしてこれなの?答え: ###

这是由于 :not(p) 同样能够选中 ,那么 的 color 即变成了 blue,由于 color 是一个可继承属性,<p></p> 标签继承了 的 color 属性,导致看到的 <p></p> 也是蓝色。

我们把它改成一个不可继承的属性,试试看:

/* Selects any element that is NOT a paragraph */
:not(p) {
  border: 1px solid;
}

CSS の面接での 2 つの質問をチェックして、基礎をテストしてください。

OK,这次 <p></p> 没有边框体现,没有问题!

因此,实际使用的时候,需要一定要注意样式继承的问题!

(学习视频分享:css视频教程web前端

以上がCSS の面接での 2 つの質問をチェックして、基礎をテストしてください。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はsegmentfaultで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
非常に多くの色のリンク非常に多くの色のリンクApr 13, 2025 am 11:36 AM

最近の色に関するツール、記事、リソースの実行がありました。あなたの楽しみのためにここにそれらを丸くすることで、私がいくつかのタブを閉じてもらいましょう。

FlexBoxでの自動マージンの仕組みFlexBoxでの自動マージンの仕組みApr 13, 2025 am 11:35 AM

ロビンは以前にこれをカバーしたことがありますが、私は過去数週間でそれについての混乱を聞いて、他の人がそれを説明することに刺されたのを見ました、そして私は望んでいました

動く虹色の下線動く虹色の下線Apr 13, 2025 am 11:27 AM

サンドイッチサイトのデザインが大好きです。多くの美しい特徴の中には、これらの見出しがあり、レインボーの下線が下線を描いて、スクロールするときに動きます。そうではありません

新年、新しい仕事?グリッド駆動の履歴書を作成しましょう!新年、新しい仕事?グリッド駆動の履歴書を作成しましょう!Apr 13, 2025 am 11:26 AM

多くの人気のある履歴書設計は、グリッド形状にセクションを配置することにより、利用可能なページスペースを最大限に活用しています。 CSSグリッドを使用して、レイアウトを作成しましょう

リロードしすぎるという習慣からユーザーを分解する1つの方法リロードしすぎるという習慣からユーザーを分解する1つの方法Apr 13, 2025 am 11:25 AM

ページのリロードは何かです。ページが反応しないと思われるとき、または新しいコンテンツが利用可能であると信じるときにページを更新することもあります。時々私たちはただ怒っています

Reactを使用したドメイン駆動型のデザインReactを使用したドメイン駆動型のデザインApr 13, 2025 am 11:22 AM

Reactの世界でフロントエンドアプリケーションを整理する方法に関するガイダンスはほとんどありません。 (「正しいと感じる」までファイルを移動するだけです笑)。真実

非アクティブユーザーの検出非アクティブユーザーの検出Apr 13, 2025 am 11:08 AM

ほとんどの場合、ユーザーがアプリケーションに積極的に関与しているのか、一時的に非アクティブであるかを本当に気にしません。非アクティブ、意味、おそらく彼ら

Wufoo ZapierWufoo ZapierApr 13, 2025 am 11:02 AM

Wufooは常に統合に優れています。キャンペーンモニター、MailChimp、TypeKitなどの特定のアプリと統合されていますが、

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

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

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

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

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

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

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境