X Tutup

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

CSSFunctionDescriptors

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

CSSFunctionDescriptorsCSS オブジェクトモデルのインターフェイスで、CSSFunctionDeclarations で表現された一連の CSS 宣言に含まれる記述子を表します。

CSSFunctionDescriptors オブジェクトは CSSFunctionDeclarations.style プロパティからアクセスできます。

CSSStyleDeclaration CSSFunctionDescriptors

インスタンスプロパティ

このインターフェイスには CSSStyleDeclaration から継承したプロパティがあります。

CSSFunctionDescriptors.result 読取専用 Experimental

result 記述子が関連する一連の宣言の中に存在する場合、それを表す文字列を返します。

基本的な CSSFunctionDescriptors の使い方

この例では、CSS カスタム関数を定義し、CSSOM を使用してその宣言にアクセスします。

CSS

この CSS では、@function アットルールを用いてカスタム関数を定義しています。この関数は --lighter() と呼ばれ、入力された色の明るさを増したバージョンを出力します。--lighter() は 2 つの引数として <color><number> を取ります。相対色構文を用いて生成された oklch() 色を返します。入力された色を oklch() 色に変換し、その明度チャンネルを入力された数値分だけ増加させます。

css
@function --lighter(--color <color>, --lightness-adjust <number>: 0.2) returns
  <color> {
  result: oklch(from var(--color) calc(l + var(--lightness-adjust)) c h);
}

JavaScript

スクリプトはまず、HTMLStyleElement.sheet を使用してこの文書に添付されたスタイルシートへの参照を取得します。次に、CSSStylesheet.cssRules を通じて、スタイルシート内の唯一のルールである CSSFunctionRule への参照を取得します。

次に、関数内で唯一の連続した宣言群を表す CSSFunctionDeclarations オブジェクトを cssRules[0] で参照し、その記述子の情報を CSSFunctionDeclarations.style で取得した後、記述子のスタイル情報を参照します。この情報はすべてコンソールにログ出力されます。

js
// CSSFunctionRule を取得
const cssFunc = document.getElementById("css-output").sheet.cssRules[0];

// CSSFunctionDeclarations と CSSFunctionDescriptors へのアクセス
console.log(cssFunc.cssRules[0]); // CSSFunctionDeclarations
console.log(cssFunc.cssRules[0].style); // CSSFunctionDescriptors
console.log(cssFunc.cssRules[0].style.result);

特に注目すべきは、result プロパティが @function 本体の result 記述子と等しい点であり、これが oklch(from var(--color) calc(l + var(--lightness-adjust)) c h) であることです。

仕様書

Specification
CSS Functions and Mixins Module
# cssfunctiondescriptors

ブラウザーの互換性

関連情報

X Tutup