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

View in English Always switch to English

Window: getDefaultComputedStyle() メソッド

非標準: この機能は標準化されていません。非標準の機能はブラウザーの対応が限られ、将来的に変更または削除される可能性があるため、本番環境での使用は推奨されません。ただし、標準の選択肢が存在しない特定のケースでは、有効な代替手段となる場合があります。

getDefaultComputedStyle() メソッドは、要素のすべての CSS プロパティの既定の計算値を返します。この際、作成者によるスタイル設定は無視されます。つまり、ユーザーエージェントとユーザーによるスタイル設定のみが考慮されます。

構文

js
getDefaultComputedStyle(element)
getDefaultComputedStyle(element, pseudoElt)

引数

element

計算済みスタイルを取得する対象の Element です。

pseudoElt 省略可

一致する擬似要素を指定する文字列。通常の要素の場合はnull(または未指定)でなければなりません。

返値

返される styleCSSStyleDeclaration オブジェクトです。このオブジェクトは Window.getComputedStyle() が返すオブジェクトと同じ型ですが、ユーザーエージェントとユーザースタイルのみを考慮します。

単純な例

js
const elem = document.getElementById("elemId");
const style = getDefaultComputedStyle(elem);

より長い例

html
<div id="elem-container">ダミー</div>
<div id="output"></div>
css
#elem-container {
  position: absolute;
  left: 100px;
  top: 200px;
  height: 100px;
}
js
const elem = document.getElementById("elem-container");
const theCSSprop = getDefaultComputedStyle(elem).position;
document.getElementById("output").textContent = theCSSprop; // "static" と出力

擬似要素で使用

getDefaultComputedStyle()メソッドは、擬似要素(::before::after など)からスタイル情報を取得することが可能です。

html
<h3>生成コンテンツ</h3>
css
h3::after {
  content: " rocks!";
}
js
const h3 = document.querySelector("h3");
const result = getDefaultComputedStyle(h3, "::after").content;

console.log("the generated content is: ", result); // returns 'none'

メモ

特定の既知のケースにおいて、返される値は意図的に明示的に不正となります。 具体的には、いわゆる CSS 履歴漏洩のセキュリティ課題を避けるため、ブラウザーはリンクの :visited 擬似セレクターを適用する際に、使用済みリンクの値について明示的に「嘘」をつき、ユーザーがリンク先サイトを一度も訪問したことがないかのように常に値を返したり、適用可能なスタイルを制限していたりすることがあります。 これを実装する方法の例の詳細については、 https://blog.mozilla.org/security/2010/03/31/plugging-the-css-history-leak/ および https://hacks.mozilla.org/2010/03/privacy-related-changes-coming-to-css-vistited/)を参照してください。

仕様書

CSS ワーキンググループに提案されています。

ブラウザーの互換性