2016-08-02 4 views
2

任意のスタイルを持っていないなぜあなたは、コードの最後の行に注意している場合学習JS - 私の要素は、私は自分のWebページに苦しんだ

document.getElementById("btn").addEventListener("click", function(){ 
 
    var g = document.getElementById("guitar"); 
 
    console.log("Styles:", g.style.left,g.style.top, g.style.width,g.style.height, g.style.background); 
 
});
<html> 
 
    <head> 
 
     <style> 
 
    
 
     .stage { 
 
    \t position:relative; width:400px;height:300px;background:brown; 
 
     } 
 
    
 
     .guitar { 
 
    \t position:absolute;  \t left:20px;  \t top:10px;  \t width:150px;  \t height:150px;  \t background:#f63f63; 
 
     } 
 
    
 
     </style> 
 
    </head> 
 
    <body> 
 
    
 
     <input type="button" id="btn" value="Do something" /> 
 
    
 
     <div class="stage" id="stage"> 
 
     <div class="guitar" id="guitar" /> 
 
     </div> 
 
    <body> 
 
    </html> 
 
    
 

、私はを参照していますギターのためのg(私は悪い命名法などを知っています、私はちょうどここでうんざりしています)。

gに時計を入れてプロパティを展開してスタイルに移動すると、何もありません(スタイルのリストに値はありません)。バックグラウンドでさえ空の値を示しますが、HTMLでは正しく表示されます。

ウォッチウィンドウの値が表示されないのはなぜですか?

enter image description here

+0

@MyDaftQuestions ** ** fuction **は含まれていません。関連していない**すべての**コードを取り除くだけで、機能の本体を削除するのではなく、呼び出しを残してください。あなたの質問を修正しました。実際に実行される最小限の**完全な例が含まれていますが、あなたが投稿した状態では、あなたの質問は閉じられていたはずです。 – meagar

答えて

3

あなたg要素が属性任意のスタイルを持っていない...彼らは通常のCSS宣言があるよう

あなたは、「計算されたスタイル」にスタイル定義のすべてを見ることができ、属性では定義されていません。

+1

ああ、これです。私はクラスとスタイルと混同してきた – MyDaftQuestions

1

を実行する必要があります。

HTMLElement.styleプロパティは、任意の適用されたスタイルのルールを無視して、唯一の要素のインラインスタイル属性を表しCSSStyleDeclarationオブジェクトを返します。

これは要素<div style="left: 10px;">を持っている場合にのみCSSルールdiv { left: 10px; }を持っている場合、そのスタイルオブジェクトがleft値が含まれていますが、ないことを意味します。

すでに述べたように、getComputedStyle()を使用すると、CSSによって適用される実際のスタイルを取得できます。

関連する問題