From 005c3be6f3217338d9fddc24b490f6f60b9e10cb Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Wed, 5 Jan 2022 10:08:07 +0900 Subject: 2021/08/13 時点の英語版に同期 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- files/ja/web/css/_colon_has/index.md | 71 ++++++++++++++++++------------------ 1 file changed, 35 insertions(+), 36 deletions(-) (limited to 'files/ja') diff --git a/files/ja/web/css/_colon_has/index.md b/files/ja/web/css/_colon_has/index.md index c8c0659606..85d42d8ab0 100644 --- a/files/ja/web/css/_colon_has/index.md +++ b/files/ja/web/css/_colon_has/index.md @@ -1,59 +1,58 @@ --- title: ':has()' -slug: 'Web/CSS/:has' +slug: Web/CSS/:has tags: + - ':has' - CSS - - Experimental - - Reference + - 実験的 + - リファレンス - セレクター - リファレンス - 擬似クラス -translation_of: 'Web/CSS/:has' +browser-compat: css.selectors.has +translation_of: Web/CSS/:has --- -
{{CSSRef}}
- -

:has() は CSS の擬似クラスで、引数として渡されたセレクターに (指定された要素の {{cssxref(":scope")}} の相対で) 該当する要素が一つ以上の要素に一致することを表します。

+{{CSSRef}} -

:has() 擬似クラスは、セレクターの相対的なリストを引数に取ります。 CSS Selectors Level 4 仕様書よりも前の版では、 :has はスタイルシート内で使用することができず、 {{domxref("document.querySelector()")}} のような関数でのみ利用することができるという制限がありました (性能上の問題です)。そのように実装するブラウザーはなかったので、この制限は撤廃されました。

+**`:has()`** は CSS の[擬似クラス](/ja/docs/Web/CSS/Pseudo-classes)で、引数として渡されたセレクターに (指定された要素の {{cssxref(":scope")}} の相対で) 該当する要素が一つ以上の要素に一致することを表します。 -
/* <img> 要素を直接中に含む <a> を選択する */
+```css
+/*  要素を直接中に含む  を選択する */
 /* なお、これはまだブラウザーが対応していません */
-var test = document.querySelector('a:has(> img)');
+let test = document.querySelector('a:has(> img)'); +``` -

構文

+## 構文 {{CSSSyntax}} -

+## 解説 + +`:has()` 擬似クラスは、セレクターの相対的なリストを引数に取ります。 CSS Selectors Level 4 仕様書よりも前の版では、 `:has` はスタイルシート内で使用することができず、 {{domxref("document.querySelector()")}} のような関数でのみ利用することができるという制限がありました (性能上の問題です)。そのように実装するブラウザーはなかったので、この制限は撤廃されました。すなわち、ブラウザーは現在、 `:has()` のスタイルシートでの使用に対応しています。 + +## 例 + +### \
要素のうち直接 \ を含んでいるものを選択 + +次のセレクターは、 {{HTMLElement("img")}} を直接子に持つ {{HTMLElement("a")}} 要素のみを選択します。 + + a:has(> img) + +### \

要素のうち直後に \

があるものを選択 -

次のセレクターは、 {{HTMLElement("img")}} を直接子に持つ {{HTMLElement("a")}} 要素のみに一致します。

+次のセレクターは、直後に {{htmlelement("p")}} 要素を持つ {{HTMLElement("h1")}} 要素のみを選択します。 -
a:has(> img)
-
+ h1:has(+ p) -

次のセレクターは、直後に {{htmlelement("p")}} 要素を持つ {{HTMLElement("h1")}} 要素のみに一致します。

+## 仕様書 -
h1:has(+ p)
+{{Specifications}} -

仕様書

+## ブラウザーの互換性 - - - - - - - - - - - - - - - -
仕様書状態備考
{{SpecName("CSS4 Selectors", "#relational", ":has()")}}{{Spec2("CSS4 Selectors")}}初回定義
+{{Compat}} -

ブラウザーの互換性

+## 関連情報 -

{{Compat("css.selectors.has")}}

+- [セレクターを使用した DOM 要素の特定](/ja/docs/Web/API/Document_object_model/Locating_DOM_elements_using_selectors) +- [`:scope`](/ja/docs/Web/CSS/:scope) -- cgit v1.2.3-54-g00ecf