In der Webentwicklung kann die dynamische Bearbeitung von CSS-Eigenschaften das Benutzererlebnis und die Benutzeroberfläche verbessern. Mit JavaScript ist der Zugriff auf diese Eigenschaften unkompliziert.
In Ihrem Szenario ist eine CSS-Datei mit einer HTML-Seite verknüpft und Sie müssen eine bestimmte Eigenschaft (z. B. Farbe) für ein Div mit dem Klassennamen „abrufen“ Layout." So erreichen Sie dies mit JavaScript:
Erklärung:
Bei dieser Methode wird das Dokument manuell durchlaufen .styleSheets-Objekt und analysieren seinen Inhalt, um nach der gewünschten Eigenschaft zu suchen. Dieser Ansatz wird jedoch nicht empfohlen, da er unhandlich werden kann, insbesondere bei komplexen CSS-Dateien oder wenn Sie Eigenschaften für mehrere Elemente abrufen müssen.
Erläuterung:
Diese Methode ist effizienter und liefert genaue Ergebnisse. Dabei wird ein Element mit demselben Klassennamen wie das Zielelement erstellt und dann auf den berechneten Stil des erstellten Elements zugegriffen. Der berechnete Stil stellt den tatsächlich auf das Element angewendeten Stil dar, einschließlich geerbter Stile und aller durch Benutzer-Stylesheets oder JavaScript vorgenommenen Änderungen.
JavaScript-Code:
function getStyleProp(elem, prop) {
if (window.getComputedStyle) {
return window.getComputedStyle(elem, null).getPropertyValue(prop);
} else if (elem.currentStyle) {
return elem.currentStyle[prop]; // IE compatibility
}
}
window.onload = function () {
var d = document.createElement("div"); // Create a div element
d.className = "layout"; // Set the class name
alert(getStyleProp(d, "color")); // Retrieve the "color" property
};
Wenn Sie geerbte Stileigenschaften ohne Inline-Stildefinitionen abrufen möchten, können Sie die Inline-Stile vorübergehend entfernen und dann die geerbten Werte abrufen.
JavaScript-Code:
function getNonInlineStyle(elem, prop) {
var style = elem.cssText; // Cache the inline style
elem.cssText = ""; // Remove inline styles
var inheritedPropValue = getStyleProp(elem, prop); // Retrieve inherited value
elem.cssText = style; // Restore inline style
return inheritedPropValue;
}
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3