Heim > Web-Frontend > js-Tutorial > Wie erhalte ich die Stilwerte eines HTML-Elements in verschiedenen Browsern?

Wie erhalte ich die Stilwerte eines HTML-Elements in verschiedenen Browsern?

DDD
Freigeben: 2024-12-01 07:19:14
Original
916 Leute haben es durchsucht

How to Get an HTML Element's Style Values Across Different Browsers?

So rufen Sie die Stilwerte eines HTML-Elements in JavaScript ab

Das Abrufen von Stilwerten aus HTML-Elementen ist wichtig, um das Erscheinungsbild von Elementen dynamisch zu manipulieren. Während das Festlegen von Stilen mithilfe von JavaScript unkompliziert ist, kann der Zugriff auf in Stil-Tags definierte Stile schwierig sein.

Überlegungen zu browserübergreifenden Elementen

Der Zugriff auf Elementstile erfordert einen browserübergreifenden Ansatz. Internet Explorer verwendet seine eigene Eigenschaft currentStyle, während andere Browser dem W3C-Standard folgen und document.defaultView.getComputedStyle verwenden.

Benutzerdefinierte Cross-Browser-Funktion

Zur Handhabung von Cross -Browser-Inkonsistenzen, häufig eine benutzerdefinierte Funktion beschäftigt:

function getStyle(el, styleProp) {
  var value, defaultView = (el.ownerDocument || document).defaultView;
  // W3C standard way:
  if (defaultView && defaultView.getComputedStyle) {
    // sanitize property name to css notation
    styleProp = styleProp.replace(/([A-Z])/g, "-").toLowerCase();
    return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp);
  } else if (el.currentStyle) { // IE
    // sanitize property name to camelCase
    styleProp = styleProp.replace(/\-(\w)/g, function(str, letter) {
      return letter.toUpperCase();
    });
    value = el.currentStyle[styleProp];
    // convert other units to pixels 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

Verwendung

So rufen Sie die Stileigenschaft eines Elements ab:

var element = document.getElementById("box");
var width = getStyle(element, "width");
Nach dem Login kopieren

Aktuelle Überlegungen

Die obige Funktion verarbeitet möglicherweise nicht alle Randfälle, insbesondere bei Farben, bei denen der zurückgegebene Wert zwischen IE und anderen abweichen kann Browser.

Das obige ist der detaillierte Inhalt vonWie erhalte ich die Stilwerte eines HTML-Elements in verschiedenen Browsern?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage