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
Kürzlich stellte mir ein Freund eine Frage: Beim ...
Vorwort Wenn in einem relativ komplexen großen Sy...
Es ist sehr einfach, Daten und Tabellen in MySQL ...
Wer King of Glory gespielt hat, sollte mit der Wi...
XQuery ist eine Sprache zum Extrahieren von Daten...
Öffnen Sie den Editor für geplante Aufgaben. Cent...
Bei der Durchführung eines Projekts stößt man unw...
Grund: MySQL 5.7.5 und höher implementiert die Er...
Vor Kurzem wurde ein System bereitgestellt, das n...
Inhaltsverzeichnis Vorwort Kern - CancelToken Pra...
Was ist SSH? Administratoren können sich remote a...
Erstellen von Tabellendaten CREATE TABLE `praise_...
Wenn die Seite nicht reagiert, ist die Anzeige de...
Inhaltsverzeichnis 1: Einführung in Galera-Cluste...
Wenn Docker einen Container startet, gibt es den ...