teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

訂正

2019/03/15 01:31

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア37460

answer CHANGED
@@ -9,5 +9,9 @@
9
9
 
10
10
  ご提示のコードは`document.documentElement`から取得されていますから、1番目のものに当たると思うのですが、その場合に取得できるのはインラインスタイルのみのようですね。
11
11
 
12
- 解決方法ですが、`document.styleSheets[0].cssRules[0]`のような形式でCSSルールを取得して書き換えるのがいいでしょう。(この方法で置き換えができることは確認しました)
12
+ ~~解決方法ですが、`document.styleSheets[0].cssRules[0]`のような形式でCSSルールを取得して書き換えるのがいいでしょう。
13
- 現実的には`:not(#markerRule)`みたいな意味を持たない属性セレクタを挿入しておいて、それを目印に`document.styleSheets`を全部なめる、というのはいかがでしょうか。
13
+ 現実的には`:not(#markerRule)`みたいな意味を持たない属性セレクタを挿入しておいて、それを目印に`document.styleSheets`を全部なめる、というのはいかがでしょうか。~~
14
+
15
+ と思ったのですが、気になっていろいろサンプルを書いてみたところ、:rootのインラインがオリジンで優先されて継承されますね……
16
+ [https://jsfiddle.net/Lhankor_Mhy/tz2x90d5/1/](https://jsfiddle.net/Lhankor_Mhy/tz2x90d5/1/)
17
+ 考えられるのは、子要素に別のスタイルが当たっているとかでしょうか……