Heim  >  Artikel  >  Web-Frontend  >  Warum gibt „myDiv.style.display“ eine leere Zeichenfolge zurück, wenn „Anzeige“ in einem Master-Stylesheet festgelegt ist?

Warum gibt „myDiv.style.display“ eine leere Zeichenfolge zurück, wenn „Anzeige“ in einem Master-Stylesheet festgelegt ist?

Linda Hamilton
Linda HamiltonOriginal
2024-11-06 19:31:02523Durchsuche

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

Master-Stylesheets und Inline-Stile: Verständnis des Verhaltens von Anzeigeeigenschaften

Beim Versuch, die Anzeigeeigenschaft eines DIV-Elements mithilfe von JavaScript abzurufen, trat eine Diskrepanz auf wurde beobachtet. Wenn Sie die Anzeige im HTML-Element inline auf „none“ festlegen, gibt myDiv.style.display wie erwartet „none“ zurück. Die Definition der Anzeige als „Keine“ in einem Master-Stylesheet führt jedoch zu einer leeren Zeichenfolge, wenn über myDiv.style.display darauf zugegriffen wird.

Dieses Verhalten wird anhand der Funktionsweise von JavaScript verstanden. Beim Zugriff auf DOM-Elemente über JavaScript kann der berechnete Stil des Elements nicht direkt abgerufen werden, da er in der CSS-Datei definiert ist.

Lösung: Verwendung von getComputedStyle

Zu erhalten Um den berechneten Stil zu ermitteln und diese Diskrepanz zu beheben, ist es erforderlich, die Eigenschaft getComputedStyle oder currentStyle für Internet Explorer zu verwenden. Diese Eigenschaft ruft den berechneten Wert der gewünschten Stileigenschaft ab.

JavaScript-Funktion zum Abrufen des berechneten Stils

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

Verwendung

Verwenden von getStyle zum Abrufen der Anzeigeeigenschaft:

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

Das obige ist der detaillierte Inhalt vonWarum gibt „myDiv.style.display“ eine leere Zeichenfolge zurück, wenn „Anzeige“ in einem Master-Stylesheet festgelegt ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn