CSS @property 规则

定義と使用法

CSS @property ルールは、JavaScriptを実行せずにスタイルシートで直接カスタムCSS属性を定義するために使用されます。

@property ルールはデータ型の確認と制約機能を持ち、デフォルト値を設定し、属性が値を継承できるかどうかを定義できます。

を使用して @property 利点:

  • データ型の確認と制約:カスタム属性のデータ型(例:<number>、<color>、<length>など)を指定する必要があります。これによりエラーを防ぎ、カスタム属性の正しい使用を確保できます。
  • デフォルト値の設定:カスタム属性にデフォルト値を設定できます。これにより、無効な値が指定された場合にブラウザが定義されたリカバリ値を使用するようになります。
  • 継承行為の設定:カスタム属性が親要素から値を継承できるかどうかを指定する必要があります。

例:カスタム属性の定義

@property --my-color {
  syntax: "<color>";
  inherits: true;
  initial-value: lightgray;
}

上記の定義は --my-color が色属性であり、親要素から値を継承し、デフォルト値は lightgray であることを示しています。

CSSでカスタム属性の使用:

body {}}
  backgound-color: var(--my-color);
}

インスタンス

例 1

グラデーションに2つのカスタム属性を指定し、それらを使用してグラデーションをアニメーション化します:

@property --startColor {
  syntax: "<color>";
  initial-value: #EADEDB;
  inherits: false;
}
@property --endColor {
  syntax: "<color>";
  initial-value: #BC70A4;
  inherits: false;
}

自分で試してみてください

例 2

2つのカスタム属性を指定します:1つはアイテムのサイズ、もう1つはアイテムの色です:

@property --item-size {
  syntax: "<percentage>";
  inherits: true;
  initial-value: 50%;
}
@property --item-color {
  syntax: "<color>";
  inherits: false;
  initial-value: lightgray;
}

自分で試してみてください

CSS 構文

@property --propertyname {
  syntax: "<color>";
  initial-value: red;
  inherits: false;
}

属性値

説明
--propertyname 必須。カスタム属性の名前。
syntax

<length>、<number>、<percentage>、<length-percentage>、<color>、<image>、<url>、<integer>、<angle>、<time>、<resolution>、<transform-function> または <custom-ident>、またはデータタイプとキーワード値のリストで構成できます。

+(スペース区切りの)および #(カンマ区切りの)乗数は、値リストを期待します。例えば、<color># はカンマ区切りの <color> 値リストを期待する構文を示します。

縦線(|)は、期待する構文を作成する「または」条件を設定できます。例えば、<length> | auto は <length> または auto を受け入れ、<color># | <integer># はカンマ区切りの <color> 値リストまたはカンマ区切りの <integer> 値リストを期待します。

initial-value 属性の初期値を設定します。
継承 true または false。@property で指定されたカスタム属性の登録がデフォルトで継承されるかどうかを制御します。

ブラウザのサポート

テーブルの数字は、@ 规則を完全にサポートする最初のブラウザのバージョンを示しています。

Chrome Edge Firefox Safari Opera
85 85 128 16.4 71

相关页面

教程:CSS @property 规则