目次
属性セレクターは大文字と小文字を区別しません
一致する疑似クラス
擬似クラス
不定状態の疑似クラス
デフォルト オプション pseudo -class
検証疑似クラス
Optionality 疑似クラス
可変性疑似クラス
结构伪类
否定伪类
关系伪类
焦点伪类
方向性伪类
全屏伪类
占位符伪元素和占位符显示伪类
参考资料
ホームページ ウェブフロントエンド htmlチュートリアル マスター CSS セレクター (2)_html/css_WEB-ITnose

マスター CSS セレクター (2)_html/css_WEB-ITnose

Jun 24, 2016 am 11:15 AM

セレクター レベル 4 に、これまで欠落していたセレクターと新しく定義されたセレクターがいくつか追加されました。

属性セレクターは大文字と小文字を区別しません

[attribute="value" i]、属性セレクターはセレクター レベル 4 で拡張され、属性の大文字と小文字を区別しないように i 識別子が追加されています。 [href $=".pdf" i]:

<a href="a.pdf">属性值是小写字母会被选中</a><a href="b.PDF">属性值是大写字母也会被选中,如果没有添加 i 标识则该元素不会被选中</a>
ログイン後にコピー

サポートされているブラウザ: Chrome/Opera、Firefox、Safari

一致する疑似クラス

:matches(selector...)、任意に一致するものを選択してくださいselector パラメーターの要素。例:

section h1, article h1, aside h1 {  color: red;}
ログイン後にコピー

この疑似クラスを使用すると、次のように記述できます:

:matches(section, article, aside) h1 {  color: red;}
ログイン後にコピー

この機能は、コードを簡素化することです。

サポートされているブラウザ: Chrome/Opera(:-webkit-any)、Firefox(:-moz-any)、Safari

擬似クラス

をリンク

:any-link、すべてのリンクを選択:

a:any-link {  font-size: 2em;}
ログイン後にコピー

サポートされているブラウザ: Chrome/Opera(:-webkit-any-link)、Firefox(:-moz-any-link)

不定状態の疑似クラス

:indeterminate、この疑似クラスには現在次の 3 つのケースがあります:

1. どれもチェックされていない状態のラジオ ボタン ボックスのグループを選択します。例:

<input name="sex" type="radio" value="0"><input name="sex" type="radio" value="1">
ログイン後にコピー

赤い輪郭を設定します。

input[type="radio"]:indeterminate {  outline: 1px solid red;}
ログイン後にコピー

ラジオ ボタンのグループを変更する場合、任意のラジオボックス内のボタンがチェックされている状態では、この疑似クラスは無効になります。

サポートされているブラウザ: Chrome/Opera

2. 不定の DOM 属性を true に設定してチェックボックスをオンにします。例:

<input name="favorite" type="checkbox" value="apple">
ログイン後にコピー

赤い輪郭を設定します。

input[type="checkbox"]:indeterminate {  outline: 1px solid red;}
ログイン後にコピー

JavaScript を使用して、 element 値:

document.getElementsByTagName('input')[0].indeterminate = true;
ログイン後にコピー

チェックボックスをクリックして状態を変更すると、この疑似クラスは無効になります。

サポートされているブラウザ: Chrome/Opera

3. progress:indeterminate: など、不確定な状態の進行状況要素を選択します。

<progress max="100"></progress> <!-- 会被选中 --><progress max="100" value="50"></progress> <!-- 不会被选中 -->
ログイン後にコピー

サポートされているブラウザ: Chrome/Opera、Firefox、IE 10、Safari

デフォルト オプション pseudo -class

:default、類似した要素のグループ内のデフォルトの要素を選択します。例:

:default {  outline: 1px solid red;}
ログイン後にコピー

デフォルトのステータスのラジオ ボックスとチェック ボックスを選択できます: selected、selected 属性の

<form action="#" mthod="post">  <input checked name="favourite" type="checkbox" value="apple"> <!-- 会被选中 -->  <input name="favourite" type="checkbox" value="orange"> <!-- 不会被选中 -->  <input name="sex" type="radio" value="0"> <!-- 不会被选中 -->  <input checked name="sex" type="radio" value="1"> <!-- 会被选中 -->  <button type="submit">Submit1</button> <!-- 会被选中 -->  <button type="submit">Submit2</button> <!-- 不会被选中 --></form>
ログイン後にコピー

サポートされているブラウザ: Chrome/Opera、Firefox、Safari

検証疑似クラス

:valid および :invalid、この疑似クラスはselected は、Input クラス要素に加えて form 要素も選択できるため、次の 2 つの状況に分けることができます:

1.:valid は、値が検証に合格する入力要素を選択します。 :invalid は、値が検証に失敗する入力要素を選択します。例:

input:valid {  border: 1px solid green;}input:invalid {  border: 1px solid red;}
ログイン後にコピー

値が検証に合格した要素には緑色の境界線が表示され、値が検証に失敗した要素には赤色の境界線が表示されます:

<input type="email" value="x@y.z"> <!-- 绿色边框 --><input type="email" value="xyz"> <!-- 红色边框 -->
ログイン後にコピー

サポートされているブラウザ: Chrome/Opera、Firefox、IE 10、Safari

2.:valid Select external すべての入力要素が検証フォーム要素に合格します。:invalid は、少なくとも 1 つの入力要素が検証に失敗したフォーム要素を選択します

例、フォーム内に検証に失敗した入力要素がある場合、送信ボタンを非表示にすると、すべての要素が合格します。 検証中に、送信ボタンが表示されます:

<form action="#" mthod="post">  <input name="email" required type="email">  <input name="password" required type="password">  <button type="submit">Submit</button></form>
ログイン後にコピー

スタイル:

form:invalid button[type="submit"] {  display: none;}form:valid button[type="submit"] {  display: inline-block;}
ログイン後にコピー

サポートされているブラウザ: Chrome/Opera、Firefox、Safari

:in-range および :out-of-range

:in-range は、オプションの範囲内の値を持つ数値日付入力要素を選択します。 :out-of-range は、オプションの範囲外の値を持つ数値日付入力要素を選択します。次に例を示します。

input:in-range {  outline: 1px solid green;}input:out-of-range {  outline: 1px solid red;}
ログイン後にコピー

範囲内の値を持つ要素は緑色の枠線で表示され、範囲外の値を持つ要素は赤い枠線で表示されます:

<input max="10" min="1" type="number" value="9"> <!-- 绿色轮廓 --><input max="10" min="1" type="range" value="9"> <!-- 绿色轮廓 --><input max="10" min="1" type="number" value="11"> <!-- 红色轮廓 --><input max="2016-05-07" min="2016-05-05" type="date" value="2016-05-08"> <!-- 红色轮廓 -->
ログイン後にコピー

図に示すように:

:in- range は :valid の特殊なケースで、 :out-of-range は :invalid の特殊なケースの一種です。

サポートされているブラウザ: Chrome/Opera、Firefox、Edge、Safari

Optionality 疑似クラス

:required および :optional

:required は、required 属性を持つすべての input、textarea、select、およびその他のフォームを選択しますset.Element、:optional は、必須の属性を持たないすべての input、textarea、select、およびその他のフォーム要素を選択します。例:

input[type="text"]:required {  border: 1px solid red;}input[type="text"]:optional {  border: 1px solid #ccc;}
ログイン後にコピー

必須のテキスト ボックスを赤い枠線で表示:

<input required type="text"> <!-- 必填,红色边框 --><input type="text"> <!-- 非必填,灰色边框 -->
ログイン後にコピー

サポートされているブラウザ: Chrome/Opera 、Firefox 、IE 10+、Safari

可変性疑似クラス

:読み取り専用 および :読み取り-書き込み

:read-only 选择状态为只读的元素,:read-write 选择状态可读写的元素,例如:

:read-write {  border: 1px solid green;}:read-only {  background-color: #eee;}
ログイン後にコピー

<input readonly type="text"> <!-- 只读,灰色背景 --><input type="text"> <!-- 可读写,绿色边框 --><p contenteditable>可读写,绿色边框</p><p>只读,灰色背景</p>
ログイン後にコピー

:read-only 伪类和 [readonly] 属性选择器是不一样的。

支持的浏览器:Chrome/Opera, Firefox(:-moz-read-only, :-moz-read-write), Edge, Safari

结构伪类

:nth-child(n of selector),选择同级元素中第 n 个满足参数选择器的元素,其中 n 可以是自然数,也可以是公式或者关键词,和 Selectors Level 3 中定义的一样,例如:

li:nth-child(2 of .important) {  background-color: yellow;}
ログイン後にコピー

选择同级中第 2 个具有 important 类的 li 元素,

<ul>  <li>不会被选中</li>  <li class="important">不会被选中</li>  <li>不会被选中</li>  <li>不会被选中</li>  <li class="important">会被选中</li></ul>
ログイン後にコピー

如果这样写:

li.important:nth-child(2) {  background-color: yellow;}
ログイン後にコピー

该选择器选择的是同级中第 2 个同时具有 important 类的 li 元素:

<ul>  <li>不会被选中</li>  <li class="important">会被选中</li>  <li>不会被选中</li>  <li>不会被选中</li>  <li class="important">不会被选中</li></ul>
ログイン後にコピー

:nth-last-child(n of selector),同上,只是倒着数。

支持的浏览器:Safari

否定伪类

:not(selector...),在 Selectors Level 3 中否定伪类只能传入简单的选择器参数,在 Selectors Level 4 中增强了参数,可以给参数传入一个选择器列表,用于选择不匹配所有选择器参数列表的元素,参数之间用逗号分隔,例如 p:not(.foo, .bar),选择所有类不为 foo 同时也不为 bar 的 p 元素:

<p class="foo bar">不会被选中</p><p class="foo">不会被选中</p><p class="bar">不会被选中</p><p>会被选中</p>
ログイン後にコピー

该选择器的效果等同于 p:not(.foo):not(.bar)。

支持的浏览器:Safari

关系伪类

:has(selector...),选择满足参数给定条件的元素,例如:

header:has(h1) {  background-color: blue;}
ログイン後にコピー

选择内部含有 h1 元素的 header 元素,

<header>  会被选中  <h1>标题</h1></header><header>  不会被选中  <h2>标题</h2></header>
ログイン後にコピー

该伪类具有很强大的功能,更多示例:

/* 选择内部不含有 h1 元素的 header 元素 */header:not(:has(h1)) {  background-color: yellow;}/* 选择同级紧邻元素是 span 的 h2 元素 */h2:has(+ span) {  font-size: 2em;}/* 选择含有 img 子元素的 a 元素 */a:has(> img) {  border: 1px solid #ccc;}
ログイン後にコピー

支持的浏览器:暂无

焦点伪类

:focus-within,选择内部元素获得焦点的元素,例如:

<div class="item">  <label for="email">Email:</label>  <input id="email" type="text"></div>
ログイン後にコピー

样式:

:focus-within {  outline: 1px solid yellow;}
ログイン後にコピー

当输入框获得焦点的时候,会应用上面的样式,同时,其父元素也会应用上面的样式。

支持的浏览器:暂无

方向性伪类

:dir(),选择特定书写方向的元素,例如:

:dir(ltr) {  color: red;}:dir(rtl) {  color: blue;}
ログイン後にコピー

从左向右书写的文字显示为红色,从右向左书写的文字显示为蓝色:

<div dir="rtl">  <span>蓝色</span>  <div dir="ltr">红色    <div dir="auto">红色</div>  </div></div>
ログイン後にコピー

支持的浏览器:Firefox(:-moz-dir)

全屏伪类

:fullscreen,选择处于全屏显示状态下的元素,例如:

p:fullscreen {  font-size: 200%;}
ログイン後にコピー

全屏显示时段落文本大小为普通时的两倍。

支持的浏览器:Chrome/Opera(:-webkit-full-screen), Firefox(:-moz-full-screen), IE 11(:-ms-fullscreen), Safari(:-webkit-full-screen)

占位符伪元素和占位符显示伪类

::placeholder,选择占位符伪元素,例如:

<input name="username" placeholder="Please enter your name" type="text">
ログイン後にコピー
ログイン後にコピー

样式:

::placeholder {  color: #999;}
ログイン後にコピー

支持的浏览器:Chrome/Opera(::-webkit-input-placeholder), Firefox(::-moz-placeholder), IE10(:-ms-input-placeholder), Edge(::-ms-input-placeholder), Safari(::-webkit-input-placeholder)

:placeholder-shown,选择当前正在显示占位符的元素,例如:

<input name="username" placeholder="Please enter your name" type="text">
ログイン後にコピー
ログイン後にコピー

样式:

input:placeholder-shown {  border: 1px solid red;}
ログイン後にコピー

如图:

支持的浏览器:Chrome/Opera, Safari

参考资料

  • Selectors Level 4
  • CanIuse
  • このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

    ホット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衣類リムーバー

    Video Face Swap

    Video Face Swap

    完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

    ホットツール

    メモ帳++7.3.1

    メモ帳++7.3.1

    使いやすく無料のコードエディター

    SublimeText3 中国語版

    SublimeText3 中国語版

    中国語版、とても使いやすい

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強力な PHP 統合開発環境

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    SublimeText3 Mac版

    SublimeText3 Mac版

    神レベルのコード編集ソフト(SublimeText3)

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

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

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

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

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

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

    HTML、CSS、およびJavaScriptの理解:初心者向けガイド HTML、CSS、およびJavaScriptの理解:初心者向けガイド Apr 12, 2025 am 12:02 AM

    webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

    Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Apr 04, 2025 pm 11:54 PM

    GiteEpages静的Webサイトの展開が失敗しました:404エラーのトラブルシューティングと解像度Giteeを使用する

    WebアノテーションにY軸位置の適応レイアウトを実装する方法は? WebアノテーションにY軸位置の適応レイアウトを実装する方法は? Apr 04, 2025 pm 11:30 PM

    Y軸位置Webアノテーション機能の適応アルゴリズムこの記事では、単語文書と同様の注釈関数、特に注釈間の間隔を扱う方法を実装する方法を探ります...

    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ページスタイルを制御します。

    CSS3とJavaScriptを使用して、クリック後に周囲の写真を散乱および拡大する効果を実現する方法は? CSS3とJavaScriptを使用して、クリック後に周囲の写真を散乱および拡大する効果を実現する方法は? Apr 05, 2025 am 06:15 AM

    画像をクリックした後、散乱と周囲の画像を拡大する効果を実現するには、多くのWebデザインがインタラクティブな効果を実現する必要があります。特定の画像をクリックして周囲を作成してください...

    See all articles