CSSの属性セレクターは、属性と属性値に基づいて要素をターゲットにするために使用されます。これにより、追加のクラスやIDを追加する必要なく、特定の属性を持つ要素をスタイルする強力な方法が提供されます。属性セレクターを使用するには、CSSセレクター内に直接書き込むことができ、一般的な構文に従うことができます: [attribute]
、 [attribute="value"]
、または使用している属性セレクターのタイプに応じてその他のバリエーション。
属性セレクターを使用して、 href
属性を持つ<a></a>
の要素をターゲットにする簡単な例を次に示します。
<code class="css">a[href] { color: blue; }</code>
このルールは、 href
属性を持つすべてのアンカータグに青色を適用します。属性の特定の値をターゲットにすることもできます。たとえば、外部Webサイトを指すリンクをスタイルするには(「HTTP」から始まる)、使用できます。
<code class="css">a[href^="http"] { background-color: yellow; }</code>
この場合、 ^=
属性値の開始を一致させるために使用されます。さまざまな演算子を使用して、属性値のさまざまな部分を一致させることができます。これについては、次のセクションで説明します。
CSSは、属性の異なる条件に一致するように設計されたいくつかのタイプの属性セレクターを提供します。
存在と価値セレクター:
[attribute]
:任意の値で、指定された属性を持つ要素を選択します。[attribute="value"]
:指定されたとおりに指定された属性と値を持つ要素を選択します。[attribute~="value"]
:単語の白人分離されたリストである属性値を持つ要素を選択します。その1つは正確に指定された値です。[attribute|="value"]
:指定された値から始まるハイフン分離された単語のリストである属性値を持つ要素を選択します。サブストリングマッチングセレクター:
[attribute^="value"]
:属性値が指定された値から始まる要素を選択します。[attribute$="value"]
:属性値が指定された値で終了する要素を選択します。[attribute*="value"]
:属性値がその内部のどこにでも指定された値を含む要素を選択します。症例感受性:
i
フラグを使用して、 [attribute="value" i]
など、ケースに依存しないようにすることができます。これらの各タイプのセレクターは、属性に基づいて要素を特定するさまざまな方法を提供し、追加のHTMLマークアップなしで簡単にスタイリングできます。
属性セレクターは、属性に基づいて要素のより正確なターゲティングを許可することにより、CSSルールの特異性を高めることができます。 CSSの特異性は、複数の競合するルールが同じ要素をターゲットにするときに適用されるスタイルを決定します。セレクターがより具体的であればあるほど、優先順位が高くなります。
属性セレクターが特異性にどのように寄与するかは次のとおりです。
a[hreflang="en"]
単なるa
よりも具体的であり、 a
のみのルールをオーバーライドします。div[data-role="main"]
特定のデータ属性を持つdiv
ターゲットにし、 div
よりも具体的にします。属性セレクターを使用することにより、高度にターゲットを絞った特定のスタイルを作成し、意図しないスタイルの対立の可能性を減らし、CSSの保守性を向上させることができます。
はい、属性セレクターを他のCSSセレクターとシームレスに組み合わせて、より複雑でターゲットを絞ったルールを作成できます。この組み合わせにより、どの要素がスタイル化されているか、どのようにスタイルが整ったかについて、細粒の制御が可能になります。
属性セレクターを他のセレクターと組み合わせる方法の例をいくつか紹介します。
タイプセレクターと組み合わせる:
<code class="css">input[type="text"] { border: 1px solid #ccc; }</code>
このルールは、ボーダースタイルを設定するタイプ「テキスト」のinput
要素をターゲットにします。
クラスセレクターとの組み合わせ:
<code class="css">.button[aria-disabled="true"] { opacity: 0.5; pointer-events: none; }</code>
このルールはaria-disabled
属性が「True」に設定されたクラスbutton
を持つ要素に適用され、無効ボタンを効果的にスタイリングします。
IDセレクターとの組み合わせ:
<code class="css">#main-nav li[data-active="true"] { background-color: #eee; }</code>
これによりdata-active
属性が「true」に設定されているID main-nav
を持つ要素内のリスト項目をターゲットにし、アクティブなナビゲーションアイテムを強調表示します。
複数の属性セレクターの使用:
<code class="css">a[href^="https"][target="_blank"] { background-image: url('external-link-icon.png'); }</code>
このルールは、「https」で始まり、 target
属性が「_blank」に設定されたターゲット属性の両方をアンカータグに追加する外部リンクアイコンを追加します。
属性セレクターを他のタイプのセレクターと組み合わせることで、特異性が高い要素をターゲットにできる非常に正確なルールを作成し、CSSをより効果的で管理しやすくすることができます。
以上がCSSで属性セレクターをどのように使用しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。