ホームページ  >  記事  >  ウェブフロントエンド  >  表示がマスター スタイルシートで設定されている場合、`myDiv.style.display` が空の文字列を返すのはなぜですか?

表示がマスター スタイルシートで設定されている場合、`myDiv.style.display` が空の文字列を返すのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-06 19:31:02523ブラウズ

Why Does `myDiv.style.display` Return an Empty String When Display Is Set in a Master Stylesheet?

マスター スタイルシートとインライン スタイル: 表示プロパティの動作を理解する

JavaScript を使用して DIV 要素の表示プロパティを取得しようとすると、不一致が発生しますが観察されています。 HTML 要素内でインラインで表示を none に設定すると、myDiv.style.display は期待どおり「none」を返します。ただし、マスター スタイルシート内で表示を none として定義すると、myDiv.style.display.

経由でアクセスすると空の文字列が返されます。この動作は、JavaScript の動作方法に基づいて理解されます。 JavaScript を介して DOM 要素にアクセスする場合、要素の計算されたスタイルは CSS ファイルで定義されているため、直接取得できません。

解決策: getComputedStyle

を利用して取得します。計算されたスタイルを調べてこの不一致に対処するには、getComputedStyle プロパティまたは Internet Explorer の currentStyle を使用する必要があります。このプロパティは、目的のスタイル プロパティの計算値を取得します。

計算されたスタイルを取得するための JavaScript 関数

function getStyle(id, name) {
  var element = document.getElementById(id);
  return element.currentStyle
    ? element.currentStyle[name]
    : window.getComputedStyle
    ? window.getComputedStyle(element, null).getPropertyValue(name)
    : null;
}

使用法

getStyle を使用して表示プロパティを取得します:

var display = getStyle('myDiv', 'display');
alert(display); //will print 'none' or 'block' or 'inline' etc

以上が表示がマスター スタイルシートで設定されている場合、`myDiv.style.display` が空の文字列を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。