diff options
Diffstat (limited to 'files/ja/web/css/attribute_selectors/index.html')
-rw-r--r-- | files/ja/web/css/attribute_selectors/index.html | 236 |
1 files changed, 236 insertions, 0 deletions
diff --git a/files/ja/web/css/attribute_selectors/index.html b/files/ja/web/css/attribute_selectors/index.html new file mode 100644 index 0000000000..dbe1c60acd --- /dev/null +++ b/files/ja/web/css/attribute_selectors/index.html @@ -0,0 +1,236 @@ +--- +title: 属性セレクター +slug: Web/CSS/Attribute_selectors +tags: + - CSS + - CSS 3 属性セレクター + - CSS 属性 + - Reference + - セレクター + - ノードの識別 + - ノードの選択 + - リファレンス + - 属性 + - 属性セレクター + - 要素の識別 +translation_of: Web/CSS/Attribute_selectors +--- +<div>{{CSSRef}}</div> + +<p>CSS の<ruby><strong>属性セレクター</strong><rp> (</rp><rt>attribute selector</rt><rp>) </rp></ruby>は、指定された属性が存在するかどうかや、その値に基づいて要素を選択します。</p> + +<pre class="brush: css no-line-numbers notranslate">/* title 属性を持つ <a> 要素 */ +a[title] { + color: purple; +} + +/* href が "https://example.org" と一致する <a> 要素 */ +a[href="https://example.org"] { + color: green; +} + +/* href に "example" を含む <a> 要素 */ +a[href*="example"] { + font-size: 2em; +} + +/* href が "org" で終わる <a> 要素 */ +a[href$=".org"] { + font-style: italic; +}</pre> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<dl> + <dt><code>[<em>attr</em>]</code></dt> + <dd><em>attr</em> という名前の属性を持つ要素を表します。</dd> + <dt><code>[<em>attr</em>=<em>value</em>]</code></dt> + <dd><em>attr</em> という名前の属性の値が正確に <em>value</em> である要素を表します。</dd> + <dt><code>[<em>attr</em>~=<em>value</em>]</code></dt> + <dd><em>attr</em> という名前の属性の値が正確に <em>value</em> と一致する要素を表します。空白区切りの語のリストの形で、複数の <em>value</em> を含めることができます。</dd> + <dt><code>[<em>attr</em>|=<em>value</em>]</code></dt> + <dd><em>attr</em> という名前の属性の値が正確に <em>value</em> と一致するか、 <em>value</em> で始まり直後にハイフン (<code>-</code> (U+002D)) が続く要素を表します。言語のサブコードの一致によく使われます。</dd> + <dt><code>[<em>attr</em>^=<em>value</em>]</code></dt> + <dd><em>attr</em> という名前の属性の値が <em>value</em> で始まる要素を表します。</dd> + <dt><code>[<em>attr</em>$=<em>value</em>]</code></dt> + <dd><em>attr</em> という名前の属性の値が <em>value</em> で終わる要素を表します。</dd> + <dt><code>[<em>attr</em>*=<em>value</em>]</code></dt> + <dd><em>attr</em> という名前の属性の値が、文字列中に <em>value</em> を1つ以上含む要素を表します。</dd> + <dt id="case-insensitive"><code>[<em>attr</em> <em>operator</em> <em>value</em> i]</code></dt> + <dd>閉じ角括弧の前に <code>i</code> (または <code>I</code>) を追加すると、 (ASCII の範囲内の文字の場合) 値は大文字と小文字を区別せずに比較されます。</dd> + <dt id="case-sensitive"><code>[<em>attr</em> <em>operator</em> <em>value</em> s]</code> {{Experimental_Inline}}</dt> + <dd>閉じ角括弧の前に <code>s</code> (または <code>S</code>) を追加すると、 (ASCII の範囲内の文字の場合) 値は大文字と小文字を区別して比較されます。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Links" name="Links">リンク</h3> + +<h4 id="CSS">CSS</h4> + +<pre class="brush: css notranslate">a { + color: blue; +} + +/* "#" で始まる内部リンク */ +a[href^="#"] { + background-color: gold; +} + +/* URL のどこかに "example" が含まれるリンク */ +a[href*="example"] { + background-color: silver; +} + +/* URL のどこかに "insensitive" が含まれるリンクで、 + 大文字小文字は区別しない */ +a[href*="insensitive" i] { + color: cyan; +} + +/* URL のどこかに "cAsE" があるリンクに一致 +大文字小文字の区別つき */ +a[href*="cAsE" s] { + color: pink; +} + +/* ".org" で終わるリンク */ +a[href$=".org"] { + color: red; +}</pre> + +<h4 id="HTML">HTML</h4> + +<pre class="brush: html notranslate"><ul> + <li><a href="#internal">Internal link</a></li> + <li><a href="http://example.com">Example link</a></li> + <li><a href="#InSensitive">Insensitive internal link</a></li> + <li><a href="http://example.org">Example org link</a></li> +</ul></pre> + +<h4 id="Result" name="Result">結果</h4> + +<p>{{EmbedLiveSample("Links")}}</p> + +<h3 id="Languages" name="Languages">言語</h3> + +<h4 id="CSS_2" name="CSS_2">CSS</h4> + +<pre class="brush: css notranslate">/* `lang` 属性があるすべての div を太字にする。 */ +div[lang] { + font-weight: bold; +} + +/* アメリカ英語の div はすべて青。 */ +div[lang~="en-us"] { + color: blue; +} + +/* ポルトガル語の div はすべて緑。 */ +div[lang="pt"] { + color: green; +} + +/* 中国語の div はすべて赤。 + simplified (zh-CN) or traditional (zh-TW). */ +div[lang|="zh"] { + color: red; +} + +/* 'data-lang' が中国語繁体字の div はすべて紫。 */ +/* 注: ハイフン区切りの属性は二重引用符なしで使用できる */ +div[data-lang="zh-TW"] { + color: purple; +} +</pre> + +<h4 id="HTML_2">HTML</h4> + +<pre class="brush: html notranslate"><div lang="en-us en-gb en-au en-nz">Hello World!</div> +<div lang="pt">Olá Mundo!</div> +<div lang="zh-CN">世界您好!</div> +<div lang="zh-TW">世界您好!</div> +<div data-lang="zh-TW">世界您好!</div> +</pre> + +<h4 id="Result_2" name="Result_2">結果</h4> + +<p>{{EmbedLiveSample("Languages")}}</p> + +<h3 id="HTML_ordered_lists" name="HTML_ordered_lists">HTML 順序付きリスト</h3> + +<p>{{SeeCompatTable}}</p> + +<p>HTML 仕様書では、 {{htmlattrxref("type", "input")}} 属性は主に {{HTMLElement("input")}} 要素で使用されるため、大文字小文字の区別なく一致することを要求しており、順序付きリスト ({{HTMLElement("ol")}}) 要素の {{htmlattrxref("type", "ol")}} 属性に使おうとすると、 <a href="#case-sensitive">case-sensitive</a> 修飾子がなければ正しく動作しません。</p> + +<h4 id="CSS_3">CSS</h4> + +<pre class="brush: css notranslate">/* HTML が type 属性を扱う方法の癖の都合上、リストの種別には、大文字小文字を区別する指定が必要です。 */ +ol[type="a"] { + list-style-type: lower-alpha; + background: red; +} + +ol[type="a" s] { + list-style-type: lower-alpha; + background: lime; +} + +ol[type="A" s] { + list-style-type: upper-alpha; + background: lime; +}</pre> + +<h4 id="HTML_3">HTML</h4> + +<pre class="brush: html; notranslate"><ol type="A"> + <li>Example list</li> +</ol></pre> + +<h4 id="結果">結果</h4> + +<p>{{EmbedLiveSample("HTML_ordered_lists")}}</p> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName("CSS4 Selectors", "#attribute-selectors", "attribute selectors")}}</td> + <td>{{Spec2("CSS4 Selectors")}}</td> + <td>ASCII の大文字小文字を区別する選択、区別しない選択のための修飾子を追加</td> + </tr> + <tr> + <td>{{SpecName("CSS3 Selectors", "#attribute-selectors", "attribute selectors")}}</td> + <td>{{Spec2("CSS3 Selectors")}}</td> + <td></td> + </tr> + <tr> + <td>{{SpecName("CSS2.1", "selector.html#attribute-selectors", "attribute selectors")}}</td> + <td>{{Spec2("CSS2.1")}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの対応</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されます。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("css.selectors.attribute")}}</p> + +<h2 id="関連情報">関連情報</h2> + +<ul> + <li>{{CSSxRef("attr")}}</li> + <li>単一要素の選択: {{DOMxRef("Document.querySelector()")}}, {{DOMxRef("DocumentFragment.querySelector()")}}, {{DOMxRef("Element.querySelector()")}}</li> + <li>一致するすべての要素の選択: {{DOMxRef("Document.querySelectorAll()")}}, {{DOMxRef("DocumentFragment.querySelectorAll()")}}, {{DOMxRef("Element.querySelectorAll()")}}</li> + <li>上記のメソッドはすべて {{domxref("ParentNode")}} に混在して実装されています。 {{DOMxRef("ParentNode.querySelector()")}} および {{DOMxRef("ParentNode.querySelectorAll()")}} を参照してください</li> +</ul> |