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

W3C Tutorial (8): W3C XML Schema Aktivitäten

XML Schema ist eine XML-basierte Alternative zu D...

Drei Verwendungszwecke und Unterschiede von MySQL sind nicht gleich

Urteilssymbole werden in MySQL häufig verwendet, ...

Welche Regeln gelten für den Kontext in JavaScript-Funktionen?

Inhaltsverzeichnis 1. Regel 1: Objekt.Methode() 1...

Perfekte Lösung für das Zeitzonenproblem des Docker Alpine-Image

Als ich kürzlich Docker zum Bereitstellen einer J...

Detaillierte Erläuterung der Kapselung von JavaScript-Animationsfunktionen

Inhaltsverzeichnis 1. Prinzip der Animationsfunkt...

Containerisierungstransformation für Docker-Großprojekte

Virtualisierung und Containerisierung sind zwei u...

jQuery implementiert alle Auswahl- und umgekehrten Auswahloperationsfälle

In diesem Artikel wird der spezifische Code von j...