Analyse der Situation, in der js die Unterstützung von CSS-Attributen (Werten) bestimmt und informiert

Analyse der Situation, in der js die Unterstützung von CSS-Attributen (Werten) bestimmt und informiert

Wenn wir eine neue CSS-Funktion verwenden möchten, achten wir immer auf ihre Kompatibilität. Vielleicht suchen wir nach ihrer Kompatibilität, welche Browser geeignet sind und welche nicht, und entscheiden dann, ob wir sie verwenden oder wie wir sie unter diesen bekannten Umständen verwenden. Diese Entscheidung wird unter dem bekannten Browser getroffen, den wir verwenden werden.

Allerdings wissen wir oft nicht, welchen Browser die Benutzer zum Öffnen der von uns entwickelten Seiten verwenden. In diesem Fall müssen wir anhand der tatsächlichen Browsernutzung bestimmen, welche Strategie wir anwenden. Zu diesem Zeitpunkt müssen wir mithilfe von JS bestimmen, ob die CSS-Attribute, die wir verwenden möchten, effektiv sind.

Es gibt zwei Arten der CSS-Attributkompatibilität: eine ist das CSS-Attribut selbst, z. B. „Position“, die andere ist der CSS-Attributwert, z. B. der Sticky-Wert für das Positionsattribut.

Ziel

Wir möchten wissen, ob eine bestimmte CSS-Eigenschaft (Wert) wirksam ist, und bekommen in der Regel als Antwort, dass das Ergebnis „wirksam“ oder „unwirksam“ ist. Es gibt jedoch browserprivate CSS-Eigenschaften, d. h. es gibt CSS-Eigenschaften, die erst nach dem Hinzufügen von Browserpräfixen wirksam werden.

Daher müssen Sie wissen, welche CSS-Eigenschaften mit oder ohne Präfix für aktuelle Browser wirksam werden, und nicht nur, ob sie wirksam werden oder nicht (es ist mühsam, jedes Präfix selbst als Eingabewert zu überprüfen! In vielen Materialien im Internet erfahren Sie häufig, ob das von Ihnen angegebene CSS unterstützt wird und welcher Boolesche Wert zurückgegeben wird).

Die folgende Methode erfordert also nur, dass Sie als Eingabewert das CSS-Attribut (Wert) ohne Präfix verwenden, und kann Ihnen mitteilen, welches Präfix der aktuelle Browser unterstützt oder ob überhaupt kein Präfix erforderlich ist.

Überprüfen Sie den CSS-Eigenschaftsnamen

Diese Methode überprüft das CSS-Attribut selbst, also den Attributnamen, der beim Schreiben von CSS auf der linken Seite von : steht. Wenn der Rückgabewert leer ist, bedeutet dies, dass der Browser die Eigenschaft nicht unterstützt.

/**
 * Teilen Sie dem Browser mit, welche spezifischen CSS-Eigenschaften unterstützt werden. * @param {String} key - CSS-Eigenschaft, das ist der Name der Eigenschaft, es ist kein Präfix erforderlich. * @returns {String} - Unterstützte Eigenschaften * /
Funktion validateCssKey(Schlüssel) {
    const jsKey = toCamelCase(key); // Einige CSS-Eigenschaften werden mit Bindestrich versehen if (jsKey in document.documentElement.style) {
        Eingabetaste;
    }
    lassen Sie validKey = '';
    // Der Attributname hat die Form des Präfixes in js und der Attributwert hat die Form des Präfixes in css // Nach dem Ausprobieren kann Webkit auch der erste Buchstabe von webkit in Kleinbuchstaben sein
    const PräfixMap = {
        Webkit: „-webkit-“,
        Moz: '-moz-',
        ms: '-ms-',
        O: '-o-'
    };
    für (const jsPrefix in prefixMap) {
        const styleKey = toCamelCase(`${jsPrefix}-${jsKey}`);
        wenn (Stilschlüssel in Dokument.Dokumentelement.Stil) {
            gültiger Schlüssel = PräfixMap[jsPrefix] + Schlüssel;
            brechen;
        }
    }
    gibt gültigen Schlüssel zurück;
}

/**
 * Konvertieren Sie Zeichenfolgen mit Bindestrich in Zeichenfolgen in CamelCase-Format*/
Funktion toCamelCase(Wert) {
    Rückgabewert.replace(/-(\w)/g, (übereinstimmend, Buchstabe) => {
       returniere letter.toUpperCase();
   });
}

Überprüfen von CSS-Eigenschaftswerten

Diese Methode überprüft den Wert des CSS-Attributs, also die rechte Seite von : beim Schreiben von CSS. Wenn der Rückgabewert leer ist, beweist dies, dass der Browser den Attributwert nicht unterstützt.

Es gibt hier zwei Versionen, eine ist die es6-Version und die andere ist die grundlegende JS-Version.

Ich habe aus reiner Trotz zwei Versionen geschrieben.

/**
 * Überprüfen Sie, ob der Browser einen bestimmten CSS-Attributwert unterstützt (ES6-Version).
 * @param {String} key – der Name der CSS-Eigenschaft, zu der der zu prüfende Eigenschaftswert gehört * @param {String} value – der zu prüfende CSS-Eigenschaftswert (ohne Präfix)
 * @returns {String} – Gibt den vom Browser unterstützten Eigenschaftswert zurück */
Funktion validateCssValue (Schlüssel, Wert) {
    const Präfix = ['-o-', '-ms-', '-moz-', '-webkit-', ''];
    const Präfixwert = Präfix.map(item => {
        Artikel + Wert zurückgeben;
    });
    const element = document.createElement('div');
    const eleStyle = element.style;
    // Wenden Sie jedes Präfix an und wenden Sie zum Schluss die Groß-/Kleinschreibung ohne Präfix an, um zu sehen, welche für den Browser funktioniert. // Aus diesem Grund ist es am besten, wenn das letzte Element im Präfix '' ist.
    Präfixwert.fürJeden(Element => {
        eleStyle[Schlüssel] = Element;
    });
    returniere eleStyle[Schlüssel];
}

/**
 * Prüfen, ob der Browser einen bestimmten CSS-Eigenschaftswert unterstützt * @param {String} key – der CSS-Eigenschaftsname, zu dem der zu prüfende Eigenschaftswert gehört * @param {String} value – der zu prüfende CSS-Eigenschaftswert (ohne Präfix)
 * @returns {String} – Gibt den vom Browser unterstützten Eigenschaftswert zurück */
Funktion validateCssValue (Schlüssel, Wert) {
    var Präfix = ['-o-', '-ms-', '-moz-', '-webkit-', ''];
    var Präfixwert = [];
    für (var i = 0; i < Präfix.Länge; i++) {
        Präfixwert.push(Präfix[i] + Wert)
    }
    var Element = Dokument.ErstellenElement('div');
    var eleStyle = element.stil;
    für (var j = 0; j < Präfixwert.Länge; j++) {
         eleStyle[Schlüssel] = Präfixwert[j];
    }
    returniere eleStyle[Schlüssel];
}

Zusammenfassen

Wir können die beiden oben genannten Formen der CSS-Kompatibilität einfach zusammenführen, ohne die Methode zum Überprüfen des Attributnamens oder des Attributwerts explizit aufzurufen, und das CSS direkt übergeben, um den Browser über die Unterstützungssituation zu informieren.

Funktion validCss (Schlüssel, Wert) {
    const validCss = validateCssKey(Schlüssel);
    wenn (validCss) {
        gibt valides CSS zurück;
    }
    returniere validateCssValue(Schlüssel, Wert);
}

Dies ist das Ende dieses Artikels über die Analyse, wie js die unterstützten CSS-Attribute (Werte) bestimmt und informiert. Weitere relevante Inhalte dazu, wie js die CSS-Attributwerte bestimmt, finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die verwandten Artikel weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

<<:  So verwenden Sie Cron-Jobs, um PHP regelmäßig unter Cpanel auszuführen

>>:  So nutzen Sie Partitionierung, um die MySQL-Datenverarbeitung für Milliarden von Daten zu optimieren

Artikel empfehlen

Vue-Methode zum Überprüfen, ob der Benutzername verfügbar ist

In diesem Artikelbeispiel wird der spezifische Co...

Zusammenfassung der verschiedenen Haltungen der MySQL-Berechtigungseskalation

Inhaltsverzeichnis 1. Schreiben Sie Webshell in d...

Spezifische Verwendung von Linux which Befehl

Oft möchten wir in Linux eine Datei finden, wisse...

MySql Installer 8.0.18 Visuelles Installationstutorial mit Bildern und Text

Inhaltsverzeichnis 1. MySQL 8.0.18 installieren 2...

MySQL-Serververbindung, Trennung und cmd-Bedienung

Verwenden Sie den Befehl mysql, um eine Verbindun...

Implementierung eines Random Roll Callers basierend auf JavaScript

In diesem Artikel wird der spezifische JavaScript...

Absteigender Index in MySQL 8.0

Vorwort Ich glaube, jeder weiß, dass Indizes geor...

Hinweise zu Fallstricken bei Vuex und Pinia in Vue3

Inhaltsverzeichnis einführen Installation und Ver...