Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【CSS Modules】attr()関数の使い方

attr()関数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

attr()関数は、HTML要素の特定の属性値を取得し、CSSプロパティの値として利用できるように実行する関数です。この関数を用いることで、HTMLに記述された情報をCSSのスタイルに動的に反映させ、柔軟なスタイリングを実現します。

主に::before::afterといった擬似要素のcontentプロパティで用いられます。例えば、アンカータグ(<a>)のhref属性からURLを取得し、リンクテキストの後に表示する、といった活用ができます。

基本的な記述形式はattr(attribute-name)で、attribute-nameには参照したいHTML属性名を指定します。さらに、オプションとしてattr(attribute-name <type> <fallback>)のように、取得する値の型と代替値を指定することもできます。<type>にはstringurlnumberlengthなどのCSSデータ型を指定し、属性値がその型として解釈され、より多様なCSSプロパティで利用しやすくなります。型を指定しない場合、値は既定でstring型として扱われます。<fallback>は、属性が存在しない場合や型変換に失敗した場合に適用される値で、予期せぬスタイルの崩れを防ぐのに役立ちます。

ただし、attr()関数をcontentプロパティ以外で使用する場合、その利用はまだ実験的な段階にあり、すべてのブラウザで完全にサポートされているわけではない点にご留意ください。

公式リファレンス: attr()

構文(syntax)

1.element::before {
2  content: attr(data-label);
3}

引数(parameters)

attr-name, type-or-unit, attr-fallback

  • attr-name: 取得したい属性の名前を指定します
  • type-or-unit: 属性の型または単位を指定します(省略可能)
  • attr-fallback: 属性が存在しない場合のフォールバック値を指定します(省略可能)

戻り値(return)

<string> | <color> | <url> | <integer> | <number> | <length> | <percentage> | <angle> | <time> | <frequency> | <resolution>

attr() 関数は、HTML要素のカスタムデータ属性(data-* 属性など)や、一部の標準属性の値を返します。返される値の型は、属性によって <string><color><url><integer><number><length><percentage><angle><time><frequency><resolution> のいずれかになります。

関連コンテンツ

関連プログラミング言語