Heim > Web-Frontend > CSS-Tutorial > Wie rufe ich Stilwerte aus HTML-Elementen mit reinem JavaScript ab?

Wie rufe ich Stilwerte aus HTML-Elementen mit reinem JavaScript ab?

Linda Hamilton
Freigeben: 2024-12-20 22:32:12
Original
1006 Leute haben es durchsucht

How to Retrieve Style Values from HTML Elements using Pure JavaScript?

Abrufen von Stilwerten aus einem HTML-Element mit JavaScript

Das Abrufen der Stilattribute eines HTML-Elements ist für die dynamische Manipulation seines Erscheinungsbilds von entscheidender Bedeutung. Dieser Artikel befasst sich mit den Nuancen des Abrufens von Stilwerten mit reinem JavaScript, ohne die Hilfe externer Bibliotheken.

CurrentStyle vs. Computed Properties

Um auf Stilwerte zuzugreifen, Wir müssen zwischen Inline-Stilen (definiert im Stilattribut des Elements) und berechneten Eigenschaften (den tatsächlich angewendeten Stilen) unterscheiden.

Internet Explorer verwendet die element.currentStyle-Eigenschaft zum Abrufen von Inline-Stilen, die Werte in ihren ursprünglichen Einheiten enthalten.

Mozilla und andere moderne Browser verlassen sich auf die Methode document.defaultView.getComputedStyle, um berechnete Eigenschaften bereitzustellen. Diese Werte werden auf Pixel normiert und sorgen so für eine konsistente Darstellung in allen Browsern.

Browserübergreifende Lösung

Die folgende Funktion bietet eine browserübergreifende Lösung zum Abrufen sowohl von Inline- als auch Berechnete Stile:

function getStyle(el, styleProp) {
  var value, defaultView = (el.ownerDocument || document).defaultView;
  // Convert styleProp to compatible notation
  styleProp = styleProp.replace(/([A-Z])/g, "-").toLowerCase();
  // Modern browsers: computed properties
  if (defaultView && defaultView.getComputedStyle) {
    return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp);
  } else if (el.currentStyle) { // IE: inline properties
    // Convert styleProp to camelCase notation
    styleProp = styleProp.replace(/\-(\w)/g, function(str, letter) {
      return letter.toUpperCase();
    });
    value = el.currentStyle[styleProp];
    // Normalize units on IE
    if (/^\d+(em|pt|%|ex)?$/i.test(value)) {
      return (function(value) {
        var oldLeft = el.style.left, oldRsLeft = el.runtimeStyle.left;
        el.runtimeStyle.left = el.currentStyle.left;
        el.style.left = value || 0;
        value = el.style.pixelLeft + "px";
        el.style.left = oldLeft;
        el.runtimeStyle.left = oldRsLeft;
        return value;
      })(value);
    }
    return value;
  }
}
Nach dem Login kopieren

Beispiel

Zum Abrufen die Inline-Breiteneigenschaft eines Elements mit der ID „box“ (festgelegt über ein Stil-Tag):

alert (getStyle(document.getElementById("box"), "width"));
Nach dem Login kopieren
Nach dem Login kopieren

Um die berechnete Breiteneigenschaft abzurufen, die alle kaskadierenden oder geerbten Stile berücksichtigt:

alert (getStyle(document.getElementById("box"), "width"));
Nach dem Login kopieren
Nach dem Login kopieren

Einschränkungen

Diese Funktion verarbeitet Farbwerte nicht perfekt. Die modernen Browser geben Farben in der RGB-Notation zurück, während der IE ihre ursprüngliche Definition beibehält.

Das obige ist der detaillierte Inhalt vonWie rufe ich Stilwerte aus HTML-Elementen mit reinem JavaScript ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage