Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。
CSSFunctionDeclarations は CSS オブジェクトモデルのインターフェイスで、@function 本体に含む CSS 宣言の連続したものを表します。
この中には CSS カスタムプロパティや、@function 本体内の results 記述子の値を含めることができますが、@media などのブロックや、入れることができるアットルールは含みません。宣言のセットの途中に含まれるこのようなブロックは、複数の CSSFunctionDeclarations のデモにあるように、本体コンテンツが別個の CSSFunctionDeclarations オブジェクトになります。
CSSRule CSSFunctionDeclarationsこのインターフェイスには CSSRule から継承したプロパティがあります。
CSSFunctionDeclarations.style 読取専用@function の本体で有効な記述子を表す CSSFunctionDescriptors オブジェクトを返します。
この例では、CSS カスタム関数を定義し、CSSOM を使用してその宣言にアクセスします。
この CSS では、@function アットルールを用いてカスタム関数を定義しています。この関数は --lighter() と呼ばれ、入力された色の明るさを増したバージョンを出力します。--lighter() は 2 つの引数として <color> と <number> を取ります。相対色構文を用いて生成された oklch() 色を返します。入力された色を oklch() 色に変換し、その明度チャンネルを入力された数値分だけ増加させます。
関数内でローカルカスタムプロパティ --someVar も設定しています。これは使用されませんが、@function 本体内で複数の宣言が連続して利用できる場合に何が起こるかを示しています。
スクリプトはまず、HTMLStyleElement.sheet を使用してこの文書に添付されたスタイルシートへの参照を取得します。次に、CSSStylesheet.cssRules を通じて、スタイルシート内の唯一のルールである CSSFunctionRule への参照を取得します。
次に、関数内で唯一の連続した宣言群を表す CSSFunctionDeclarations オブジェクトを cssRules[0] で参照し、その記述子の情報を CSSFunctionDeclarations.style で取得した後、記述子の長さおよびスタイル情報を参照します。この情報はすべてコンソールにログ出力されます。
もっとも注目すべきことは次の通りです。
この例では、一連の宣言の途中に挿入された @media アットルールが、2 つの CSSFunctionDeclarations オブジェクトを生成する様子を示します。
この CSS では仕様書から引用した @function の例 --bar() を示しています。これは特に機能はしませんが、@media ブロックで別個の宣言を特徴としています。
スクリプトはまず、HTMLStyleElement.sheet を通じて文書に添付されたスタイルシートへの参照を取得し、次に CSSStylesheet.cssRules を通じてスタイルシート内の唯一のルールである CSSFunctionRule への参照を取得します。
次に、CSSGroupingRule.cssRules にアクセスし、その値をコンソールにログ出力します。これにより、3 つのオブジェクトを含む CSSRuleList オブジェクトが返されます。
次に、それぞれの CSSFunctionDeclarations オブジェクトに関するいくつかの詳細をコンソールにログ出力します。具体的には、オブジェクト自体、その style プロパティに含まれる CSSFunctionDescriptors オブジェクト、および CSSFunctionDescriptors.result プロパティです。
2 つ目の場合では、result は空文字列を返します。これは、2 つ目の宣言部分に result 記述子が含まれていないためです。
| CSS Functions and Mixins Module # the-function-declarations-interface |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2026年2月5日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.