From cd915aa14b2ff8aa076337fdd88cb2904d758222 Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Wed, 5 Jan 2022 10:52:29 +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_defined/index.md | 96 +++++++++++++------------------- 1 file changed, 40 insertions(+), 56 deletions(-) (limited to 'files/ja/web/css') diff --git a/files/ja/web/css/_colon_defined/index.md b/files/ja/web/css/_colon_defined/index.md index a3f4eec448..691cdc036e 100644 --- a/files/ja/web/css/_colon_defined/index.md +++ b/files/ja/web/css/_colon_defined/index.md @@ -1,31 +1,31 @@ --- title: ':defined' -slug: 'Web/CSS/:defined' +slug: Web/CSS/:defined tags: - CSS - - HTML - レイアウト - 擬似クラス - リファレンス - - ウェブ - セレクター - - 擬似クラス -translation_of: 'Web/CSS/:defined' + - ウェブ +browser-compat: css.selectors.defined +translation_of: Web/CSS/:defined --- {{ CSSRef }} -[CSS](/ja/docs/Web/CSS) の ``:defined`` [擬似クラス](/ja/docs/CSS/Pseudo-classes" title="Pseudo-classes)は、定義されているすべての要素を表します。これにはブラウザーに組み込まれたすべての標準要素と、 ({{domxref("CustomElementRegistry.define()")}} メソッドを使用して) 定義に成功したカスタム要素が含まれます。 +**`:defined`** は [CSS](/ja/docs/Web/CSS) の[擬似クラス](/ja/docs/CSS/Pseudo-classes)で、定義されているすべての要素を表します。これにはブラウザーに組み込まれたすべての標準要素と、 ({{domxref("CustomElementRegistry.define()")}} メソッドを使用して) 定義に成功したカスタム要素が含まれます。 -
/* 定義されたすべての要素を選択 */
+```css
+/* 定義されたすべての要素を選択 */
 :defined {
-  font-style: italic;
+  font-style: italic;
 }
 
 /* 特定の custom 要素のすべてのインスタンスを選択 */
 simple-custom:defined {
-  display: block;
+  display: block;
 }
-
+``` ## 構文 @@ -33,9 +33,14 @@ simple-custom:defined { ## 例 -この最初の例は `<simple-custom>` [カスタム要素](/ja/docs/Web/Web_Components/Using_custom_elements)を定義するスクリプトを含んでいます。 +### 定義されるまで要素を非表示にする + +以下のスニペットは、 [defined-pseudo-class](https://github.com/mdn/web-components-examples/tree/master/defined-pseudo-class) のデモから取ったものです ([ライブでも参照してください](https://mdn.github.io/web-components-examples/defined-pseudo-class/)). + +このデモでは、非常にシンプルで些細なカスタム要素を定義しています。 -
customElements.define('simple-custom',
+```js
+customElements.define('simple-custom',
   class extends HTMLElement {
     constructor() {
       super();
@@ -46,78 +51,57 @@ simple-custom:defined {
       let shadowRoot = this.attachShadow({mode: 'open'})
         .appendChild(divElem);
   }
-})
+}) +``` -次に、 `<simple-custom>` 要素と標準の {{htmlelement("p")}} 要素のインスタンスがある HTML です。 +次に、この要素のコピーを、標準的な `

` と共に文書に挿入します。 -

<simple-custom text="Custom element example text"></simple-custom>
+```html
+
 
-<p>Standard paragraph example text</p>
+

Standard paragraph example text

+``` -それでは CSS です。ここでは、要素の種類に基づいて背景色を定義し、カスタム要素の不透明度を定義済みであるかどうかによって変更し、 `:defined` セレクターを使用して定義された要素テキストをすべて斜体で表示します。 +CSS では、まず以下のルールを設定します。 -
/* 2つの要素を背景で区別できるようにする */
+```css
+/* 2 つの要素を背景で区別できるようにする */
 p {
   background: yellow;
 }
 
 simple-custom {
-  display: block;
   background: cyan;
 }
 
 /* カスタム要素と組み込み要素を両方イタリック体にする */
 :defined {
   font-style: italic;
-}
+} +``` -それから、カスタム要素が定義されていないときには非表示にするルールと、定義されていたらブロックレベル要素として定義して表示します。 +それから、カスタム要素が定義されていないときには非表示にし、定義されていたらブロックレベル要素として定義して表示するという 2 つのルールを設定します。 -
simple-custom:not(:defined) {
-  opacity: 0;
+```css
+simple-custom:not(:defined) {
+  display: none;
 }
 
 simple-custom:defined {
-  opacity: 0.75;
-  text-decoration: underline;
-}
+ display: block; +} +``` これは、複雑なカスタム要素があってページの読み込みを待ちたいときに便利です。定義が完了するまで要素のインスタンスを非表示にして、ページ上でスタイル適用前の醜い要素が一瞬現れるのを防ぐことができます。 -

結果

- -以上のコードを実行した結果は次の通りです。 +## 仕様書 -{{EmbedLiveSample('Examples')}} +{{Specifications}} -## 仕様書 +## ブラウザーの互換性 - - - - - - - - - - - - - - - -
仕様書状態備考
{{ SpecName('HTML WHATWG', 'semantics-other.html#selector-defined', ':defined') }}{{ Spec2('HTML WHATWG') }} 
- -

ブラウザーの対応

- -このページの互換性一覧表は構造化データから生成されています。データに協力したいのであれば、 [https://github.com/mdn/browser-compat-data](https://github.com/mdn/browser-compat-data) をチェックアウトしてプルリクエストを送信してください。 - -{{Compat("css.selectors.defined")}} +{{Compat}} ## 関連情報 - [ウェブコンポーネント](/ja/docs/Web/Web_Components) -- {{cssxref(":host")}} -- {{cssxref(":host()")}} -- {{cssxref(":host-context()")}} -- cgit v1.2.3-54-g00ecf