style
誰かがオブジェクトが何であるかを説明できますか? HTML DOM プロパティですか、それとも JavaScript オブジェクトですか? そして、それはどのように関連していますか:
- HTML
- CSS
- ドム
- JavaScript
次に、インライン HTML 属性に対して同じことを行うことができますが、style
この属性が のようなイベント属性とどのように比較されるかについても教えてくださいonclick
。よろしくお願いいたします。
style
誰かがオブジェクトが何であるかを説明できますか? HTML DOM プロパティですか、それとも JavaScript オブジェクトですか? そして、それはどのように関連していますか:
次に、インライン HTML 属性に対して同じことを行うことができますが、style
この属性が のようなイベント属性とどのように比較されるかについても教えてくださいonclick
。よろしくお願いいたします。
HTML要素にスタイル宣言のある inline 属性が含まれている場合、style
たとえば
<div style="color:red; background-color:white;" id="example"> example text </div>
次に、これらのインライン宣言は、要素のプロパティとして要素のオブジェクトのDOMに格納されます。style
var element = document.getElementById('example');
alert(element.style.color + element.style.backgroundColor); // 'red white'
このelement.style
オブジェクトは、要素のスタイルを簡単に調整するのに役立ちます。
Mozilla の Web サイトからの引用: 「スタイル プロパティは、CSS カスケードで style 属性を介したインライン スタイル宣言と同じ (かつ最高の) 優先度を持ちます。これは、1 つの特定の要素にスタイルを設定するのに役立ちます。」つまり、ブラウザが複数の宣言されたスタイルから要素に適用するスタイルを選択する必要がある場合、インラインスタイルは他のセレクターよりも優先されます。
#example { color:blue; }
<div id="example" style="color:red;"> example text </div>
この場合、赤色が要素に適用されます。
したがって、ほとんどの場合、変更element.style.propertyName
するとページ上の要素の外観も変更されます。私が知っている唯一の例外は!important
オーバーライドルールです。例えば:
#example { color:blue !important; } /* force color to blue */
<div style="color:red;" id="example"> example text </div>
alert(element.style.color); // alerts 'red', even though the text is forced to blue
alert(window.getComputedStyle(element,null).getPropertyValue('color')); // alerts 'rgb(0,0,255)' ~ blue
!important
(上記は、修飾子を非常に慎重かつ控えめに使用することをお勧めする理由でもあります。)
質問の残りの部分に答えるには: DOM の onclick プロパティ (または HTML の onclick 属性) は古いブラウザーからの遺産ですが、単一のイベント ハンドラーのみをアタッチする必要がある多くの場合、依然として非常に役立ちます。複数のイベント ハンドラーをアタッチするには、addEventListener DOM メソッドを使用できます。ここで簡単なテスト。
このstyle
オブジェクトは HTML DOM の一部であり、同じ名前の Javascript オブジェクトからアクセスできます。 onclick
DOM を操作するためのイベント ハンドラです。
詳細については、こちらをご覧ください: http://www.w3schools.com/jsref/dom_obj_style.asp そしてこちら: http://html.cita.illinois.edu/script/onclick/onclick-example.php
次の HTML タグを検討してください。
<input type="text" id="search" />
JavaScript でこの要素にアクセスできます。
var search = document.getElementById('search');
これで、変数が呼び出されsearch
、それがオブジェクトになります。
typeof search;
// object
alert(search.constructor.name);
// HTMLInputElement
属性は、そのstyle
ような要素で使用できます。それはオブジェクトです:
search.style;
// CSSStyleDeclaration {parentRule: null, length: 0, cssText: "", alignmentBaseline: "", background: ""…}
プロパティを変更すると、ブラウザの DOM に影響します。
search.style.backgroundColor = 'red';
これで、ブラウザでテキストボックスが赤くなります。