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

View in English Always switch to English

CSSFunctionRule

Limited availability

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

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

CSSFunctionRuleCSS オブジェクトモデルのインターフェイスで、CSS の @function(カスタム関数)アットルールを表します。

CSSRule CSSGroupingRule CSSFunctionRule

インスタンスプロパティ

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

CSSFunctionRule.name 読取専用 Experimental

このカスタム関数の名前を表す文字列を返します。

CSSFunctionRule.returnType 読取専用 Experimental

このカスタム関数の返値の型を表す文字列を返します。

インスタンスメソッド

このインターフェイスには CSSGroupingRule から継承したメソッドがあります。

CSSFunctionRule.getParameters() Experimental

このカスタム関数の引数を表すオブジェクトの配列を返します。

基本的な CSSFunctionRule の使い方

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

CSS

この CSS では、@function アットルールを使用してカスタム関数を定義しています。この関数は --lighter() と呼ばれ、入力された色の明るさを調整した結果を返します。--lighter()<color><number> の 2 つの引数を受け入れます。この関数は、相対色構文を使用して作成された 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 への参照を取得します。その後、CSSFunctionRule のそれぞれのメンバーをコンソールにログ出力します。

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

// CSSFunctionRule メンバーにアクセス
console.log(cssFunc.name);
console.log(cssFunc.returnType);
console.log(cssFunc.getParameters());
  • name プロパティは --lighter となります。

  • returnType プロパティは <color> となります。

  • getParameters() メソッドは次のような配列を返します。

    js
    [
      { name: "--color", type: "<color>" },
      { defaultValue: "0.2", name: "--lightness-adjust", type: "<number>" },
    ];
    

仕様書

Specification
CSS Functions and Mixins Module
# the-function-interface

ブラウザーの互換性

関連情報