var style = window.getComputedStyle(element[, pseudoElt]);
ここで、pseudoElt
は「一致する疑似要素を指定する文字列」です。疑似要素はまたはのような::before
もの::after
で、CSSスタイルによって生成される要素です。:hover
、:visited
または他の同様の効果は疑似クラスです。新しい要素は作成されませんが、要素に特殊なクラススタイルが適用されます。
少なくとも。を使用して、疑似クラスの計算されたスタイルを取得することはできませんgetComputedStyle
。ただし、CSSルールをトラバースして適切なセレクターを見つけることはできますが、一部のブラウザーはDOM-Level-2-Styleルールに従わず、どちらをチェックする必要があるため、これを行うことはお勧めしません。ルールは特定の要素に影響します:
/* Style */
p a:hover{ color:yellow; background:black;}
p > a:hover{ color:green; background:white;}
p > a+a:hover{ color:fuchsia; background:blue;}
// JS
var i,j, sel = /a:hover/;
for(i = 0; i < document.styleSheets.length; ++i){
for(j = 0; j < document.styleSheets[i].cssRules.length; ++j){
if(sel.test(document.styleSheets[i].cssRules[j].selectorText)){
console.log(
document.styleSheets[i].cssRules[j].selectorText,
document.styleSheets[i].cssRules[j].style.cssText
);
}
}
}
結果:
pa:ホバーカラー:黄色; 背景:なし繰り返しスクロール0%0%黒;
p> a:ホバーカラー:緑; 背景:なし繰り返しスクロール0%0%白;
p> a + a:ホバーカラー:フクシア; 背景:なし繰り返しスクロール0%0%青;
参照: