亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Heim Web-Frontend js-Tutorial SVG-Hacks für Sie

SVG-Hacks für Sie

Dec 25, 2024 am 01:28 AM

Mich hat Bytes #293, die Hauptsache zu HTML, motiviert. Ihre Motivation kam von der State of HTML 2023-Umfrage (und von Geld... aber lassen wir den gesponserten Bereich beim Mailing au?en vor).

Es scheint, dass Elemente sind bemerkenswerte Schmerzpunkte in ihrer t?glichen Arbeit. Es wurde in den ?Inhaltsbereich“ gebracht

SVG hacks for you

Einstiegspunkt

Wenn Sie mit diesem Zeug überhaupt nicht vertraut sind, kann ich Ihnen mit einer Reihe von Links für den Anfang helfen. Danach wird sich nichts ?ndern, aber Sie werden etwas mehr über SVG wissen
ˉ_(ツ)_/ˉ

  • https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Adding_vector_graphics_to_the_Web
  • https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Introduction
  • SVG-Tutorial von MDN: https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Getting_Started

Tl;DR

SVG-Elemente sind Vektorgrafikelemente. Dies kann als eine Ansammlung geometrischer Figuren verstanden werden, die in Zeichen dargestellt werden. Als kostenlose Alternative k?nnen Sie beispielsweise eines mit Adobe Illustrator oder Inkscape erstellen.

Ausgangspunkt

Aus den Antworten der Menschen k?nnen wir einige Muster erkennen. Ich werde kein bestimmtes Thema ausw?hlen, aber ich werde versuchen, etwas Wissen zu diesen Themen weiterzugeben, sodass Sie hier einige Tipps und Tricks, den Erfahrungsaustausch und anderes allgemeines Wissen zu diesem Thema finden k?nnen.

Ich werde das SVG-Sprites-Thema wie in diesem Beispiel überspringen. Es ist ein separates Thema und hat nicht viel mit dem SVG-Tag zu tun. Ich kann nur zustimmen, dass Sie noch ein paar seltene Anwendungsf?lle dafür finden k?nnten.

Dateisyntax

Eine richtige SVG-Datei sollte eine Darstellung der genannten geometrischen Figuren sein. Es ist sehr einfach zu überprüfen, ob unser Symbol vom Designer oder von der Website, auf der Sie es verwenden, im richtigen Format erstellt wurde.

Falsches Beispiel:

<svg ...><image link:href="data:image/png;base64 .../>

Erwartete Syntax:

<svg><g><path r=""/><circle /></g></svg>

W?hrend meiner Karriere bin ich einige Male in diese Situation geraten. Es lohnt sich, daran zu denken. Dies passiert, wenn Sie Rastergrafiken aufnehmen, diese in ein Vektorgrafikprogramm importieren und versuchen, sie mit der Erweiterung .svg zu exportieren. Es wandelt Ihr Bild nicht auf magische Weise in eine Vektorgrafik um.

Bemerkenswerte SVG-Tags

Ich kann Ihnen einen Spickzettel für die meisten generischen SVG-Elemente pr?sentieren.

Tag Description Animated attributes
used for grouping elements -
main tag for your actual icon. Avoid modifying the d="" attribute on your own ? It is possible but be careful with that. Grab a link with an explanation for each character group. To animate your path use animateMotion tag -
Basic rectangle shape in SVG. Simple as that ?
Simple as that. The line between two points. Don't mistake with the stroke attribute! It can also be used on the line tag. ?
You can think about it as an enhancement version of the g tag but it keeps the elements inside invisible for later use with, let's guess it... use tag -
Next basic shape. Be careful as the size is defined by radius and you position your circle with cx and cy attributes. ?
Let's call it a custom shape. They are connected straight lines where the last point connects to the first point. ?
Very similar to the previous one but with a notable difference. The last point doesn't need to be connected to the first point. ?

Bitte beachten Sie, dass es sich hierbei nur um einige ausgew?hlte SVG-Elemente handelt. Ich habe gerade die h?ufigsten beschrieben. Es stehen Ihnen noch viel mehr zur Verfügung. Eine vollst?ndige Liste finden Sie hier.

Dimensionierung und Positionierung

Da wir jetzt mit einigen der gebr?uchlichen SVG-Tags vertraut sind, k?nnen wir mit dem n?chsten Absatz über die ?nderung der Basisparameter unseres Symbols fortfahren.

Nehmen wir an, wir arbeiten mit einem jungen Designer zusammen. Er/Sie wei? noch nicht genau, wie er/sie Dinge für das Web vorbereiten soll, so wie Sie. Dadurch erh?lt man manchmal leicht unterschiedliche Icon-Gr??en mit fehlender Schnittpolsterung an den Seiten.

good one wrong one
SVG hacks for you SVG hacks for you

Klassisches Geh?use. Ich wei?, wir sollten kurz mit einem Designer telefonieren und das kl?ren, aber wir m?chten hier etwas über SVG lernen. Das machen wir in diesem Szenario nicht. Wir k?nnen es selbst reparieren.

Aus der Code-Perspektive dreht sich alles um Attribute. Die ursprüngliche SVG-Cross-Datei sieht so aus:

<svg ...><image link:href="data:image/png;base64 .../>

Ergebnisse in:

SVG hacks for you

Fast das, was wir wollen! Schauen wir uns genauer an, wie wir die Polsterung wie im ersten Symbol beibehalten k?nnen.

Wir haben 2 M?glichkeiten. Wir k?nnen den gleichen viewBox-Wert beibehalten oder jeden Breiten-, H?hen-, X- und Y-Wert für jedes verschachtelte Tag anpassen.

Die erste Option scheint einfach zu sein und funktioniert für uns ganz gut, aber es k?nnte einen Haken geben. In meinem Fall hatte ich dieses seltsame Transformationsattribut in meinem Gruppen-Tag.

<svg><g><path r=""/><circle /></g></svg>

Jetzt ist die Gr??e unseres Symbols anpassbar. Bitte beachten Sie, dass es sich um Vektorgrafiken handelt, damit die Symbolqualit?t nach der Gr??en?nderung nicht verloren geht.

Warum ist viewBox so wichtig?

Es ist der Schlüssel, wenn wir unser Symbol richtig skalieren oder eine bestimmte Position festlegen m?chten. Es hat 4 Argumente viewBox="min-x min-y width height".

viewBox="0 0 100 100" bedeutet beispielsweise, dass sich die obere linke Ecke bei (0, 0) befindet und die viewBox 100 Einheiten breit und 100 Einheiten hoch ist.

Das bedeutet, dass Sie die x- und y-Attribute Ihres Symbols anpassen müssen, nachdem Sie viewBox ge?ndert haben, da sie entsprechend ihrem Wert festgelegt sind.

Verwalten von Farben und Füllungen

Unterschiedliche Symbole erm?glichen unterschiedliche Füllungen. Natürlich kann es so einfach sein wie das Hinzufügen eines Farbstils, aber das ist ein Codetyp für Anf?nger.

Echte Entwickler fügen fill-rule="evenodd" zum Hauptelement hinzu und l?schen alle anderen manuellen Füllattribute aus Tags ?

Sie fragen sich vielleicht, warum.

Ich werde hierauf eine m?glichst kurze Antwort geben. Zur freien Anpassung unserer Symbolfarben mit einer Codezeile direkt aus unserer IDE.

Wie ist das m?glich, fragen Sie sich vielleicht.

Wenn Sie ein einfaches Symbol aus dem Designsystem Ihres Unternehmens verwenden, sollten Sie nur ein Symbol importieren k?nnen. Modifikationen oder Vervielf?ltigungen in Gr??e oder Farbe sind nicht erforderlich.

Aus Code-Sicht müssen Sie dem SVG-Element lediglich eine Füllung hinzufügen, wie Sie es normalerweise beispielsweise mit dem Farbattribut tun würden.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
   width="93.582886"
   height="93.582893"
   viewBox="0 0 24.760471 24.760474"
   version="1.1"
  >



<p>This is our raw svg exported from Inkscape. There are a few other things to fix, bear with me so we can fix them.</p>

<p>We know that 200px image is our goal. Here we have some ugly width/height values on the main svg tag.</p>

<p>Simply:<br>
</p>

<pre class="brush:php;toolbar:false"><svg
-   width="93.582886"
+   width="200"
-   height="93.582893"
+   height="200"

Es gibt einen Haken für den geraden oder ungeraden Wert, der beim Zeichnen von Polygonen oder Pfaden gilt. Es füllt nur die Innenseite sich kreuzender Pfadsegmente aus.

Erw?gen Sie, dieses Beispiel zu analysieren, falls Sie damit Schwierigkeiten haben.

SVG hacks for you

Im Fall unseres Kreuzsymbols ergibt sich also etwa Folgendes:

SVG hacks for you

Optimieren

Bevor wir unser Symbol im Web ver?ffentlichen (oder direkt nachdem wir es von Figma heruntergeladen haben), sollten wir sicherstellen, dass es richtig optimiert ist. Dieser ist sehr wichtig. Ich bin bei der Codeüberprüfung auf dieser letzten Meile viel zu oft erwischt worden und wurde viel zu oft erwischt.

SVGO (oder SVGR für reagieren) macht es zu einem sehr einfachen Prozess. Hinter den Kulissen werden gr??tenteils alle unn?tigen Dinge für uns gel?scht.

Im Allgemeinen ist es ein Werkzeug der Wahl. Entweder m?chten Sie es in Ihren Bundler integrieren oder über die CLI verwenden. Es ist sofort nach der Installation einsatzbereit, da die Standardvoreinstellungen sofort konfiguriert werden.

Hinweis: Sie k?nnen die Standardvoreinstellung überschreiben, wenn Sie wirklich m?chten. überprüfen Sie die Konfiguration in der README-Datei des Projekts und in der Plugin-Liste in den Dokumenten

Ergebnis

Der endgültige Symbolcode sieht so aus:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50"><g fill-rule="evenodd"><path d= ?M9 24h32v3H9z“>



<p>Wir haben die Gr??e von 871 Byte mit aus dem Inkspace exportierten Rohsymbol auf nur 322 Byte reduziert.</p>

<h2>
  
  
  Schmerz mit Animationen
</h2>

<p>Das letzte Thema, das für mich bittersü? ist. Es wurde auch ein paar Mal in den Umfrageantworten erw?hnt. Ich kenne keine bessere M?glichkeit, dies zu tun, als Lottie zu verwenden oder SVG-Elemente manuell in CSS zu animieren. Die zweite Option ist eine absolute Qual, wenn Sie mehr als 5 Elemente animieren müssen.</p>

<p>Natürlich ist es m?glich und wir k?nnen es schaffen, aber ehrlich gesagt gibt es noch mehr interessante Dinge zu tun?</p>

<p>Angenommen, Sie sind immer noch neugierig, wie es geht. Ich hinterlasse hier einen Link zu einem tollen Artikel. Es sollte Sie davon überzeugen, dass es Geduld erfordert und mehr als 5 Minuten dauert. Ich frage mich, ob Ihnen ein KI-Bot dabei helfen kann! Wenn ja, ist es vielleicht etwas weniger schmerzhaft.</p>

<p>Das war's vorerst.<br>
Hoffentlich haben Sie etwas aus diesem Beitrag mitgenommen und wünschen Ihnen einen sch?nen Tag?</p>


          

            
        

Das obige ist der detaillierte Inhalt vonSVG-Hacks für Sie. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

PHP-Tutorial
1488
72
Wie stelle ich eine HTTP -Anforderung in node.js? Wie stelle ich eine HTTP -Anforderung in node.js? Jul 13, 2025 am 02:18 AM

Es gibt drei g?ngige M?glichkeiten, HTTP-Anforderungen in Node.js zu initiieren: Verwenden Sie integrierte Module, Axios und Knotenfetch. 1. Verwenden Sie das integrierte HTTP/HTTPS-Modul ohne Abh?ngigkeiten, das für grundlegende Szenarien geeignet ist, jedoch eine manuelle Verarbeitung von Datengen?hten und Fehlerüberwachung erfordert, z. 2.Axios ist eine auf Versprechen basierende Bibliothek von Drittanbietern. Es verfügt über eine kurze Syntax und leistungsstarke Funktionen, unterstützt Async/Auseait, automatische JSON -Konvertierung, Interceptor usw. Es wird empfohlen, asynchrone Anforderungsvorg?nge zu vereinfachen. 3.Node-Fetch bietet einen Stil ?hnlich dem Browser-Abruf, basierend auf Versprechen und einfacher Syntax

JavaScript -Datentypen: Primitive VS -Referenz JavaScript -Datentypen: Primitive VS -Referenz Jul 13, 2025 am 02:43 AM

JavaScript -Datentypen sind in primitive Typen und Referenztypen unterteilt. Zu den primitiven Typen geh?ren String, Anzahl, Boolesche, Null, undefiniertes und Symbol. Die Werte sind unver?nderlich und Kopien werden bei der Zuweisung von Werten kopiert, sodass sie sich nicht gegenseitig beeinflussen. Referenztypen wie Objekte, Arrays und Funktionen speichern Speicheradressen, und Variablen, die auf dasselbe Objekt zeigen, wirkt sich gegenseitig aus. Typeof und Instanz k?nnen verwendet werden, um die Typen zu bestimmen, aber auf die historischen Probleme der TypeOfnull zu achten. Das Verst?ndnis dieser beiden Arten von Unterschieden kann dazu beitragen, einen stabileren und zuverl?ssigeren Code zu schreiben.

React vs Angular vs Vue: Welches JS -Framework ist am besten? React vs Angular vs Vue: Welches JS -Framework ist am besten? Jul 05, 2025 am 02:24 AM

Welches JavaScript -Framework ist die beste Wahl? Die Antwort besteht darin, die am besten geeigneten nach Ihren Bedürfnissen zu w?hlen. 1.React ist flexibel und kostenlos und für mittlere und gro?e Projekte geeignet, für die hohe Anpassungs- und Teamarchitekturf?higkeiten erforderlich sind. 2. Angular bietet vollst?ndige L?sungen, die für Anwendungen auf Unternehmensebene und langfristige Wartung geeignet sind. 3.. Vue ist einfach zu bedienen, geeignet für kleine und mittlere Projekte oder schnelle Entwicklung. Unabh?ngig davon, ob es einen technologischen Stack, die Teamgr??e, der Projektlebenszyklus gibt und ob SSR erforderlich ist, sind auch wichtige Faktoren für die Auswahl eines Rahmens. Kurz gesagt, es gibt keinen absolut besten Rahmen, die beste Wahl ist die, die Ihren Bedürfnissen entspricht.

JavaScript Time Object, jemand erstellt eine EACTEXE, schnellere Website auf Google Chrome usw. JavaScript Time Object, jemand erstellt eine EACTEXE, schnellere Website auf Google Chrome usw. Jul 08, 2025 pm 02:27 PM

Hallo, JavaScript -Entwickler! Willkommen in den JavaScript -Nachrichten dieser Woche! Diese Woche konzentrieren wir uns auf: Oracas Markenstreit mit Deno, neue JavaScript -Zeitobjekte werden von Browsern, Google Chrome -Updates und einigen leistungsstarken Entwickler -Tools unterstützt. Fangen wir an! Der Markenstreit von Oracle mit dem Versuch von Deno Oracle, ein "JavaScript" -Marke zu registrieren, hat Kontroversen verursacht. Ryan Dahl, der Sch?pfer von Node.js und Deno, hat eine Petition zur Absage der Marke eingereicht, und er glaubt, dass JavaScript ein offener Standard ist und nicht von Oracle verwendet werden sollte

Handlingversprechen: Verkettung, Fehlerbehandlung und Versprechenkombinatoren in JavaScript Handlingversprechen: Verkettung, Fehlerbehandlung und Versprechenkombinatoren in JavaScript Jul 08, 2025 am 02:40 AM

Versprechen ist der Kernmechanismus für den Umgang mit asynchronen Operationen in JavaScript. Das Verst?ndnis von Kettenanrufen, Fehlerbehebung und Kombination ist der Schlüssel zum Beherrschen ihrer Anwendungen. 1. Der Kettenaufruf gibt ein neues Versprechen durch .then () zurück, um asynchrone Prozessverkampferung zu realisieren. Jeder. Dann () erh?lt das vorherige Ergebnis und kann einen Wert oder ein Versprechen zurückgeben; 2. Die Fehlerbehandlung sollte .Catch () verwenden, um Ausnahmen zu fangen, um stille Ausf?lle zu vermeiden, und den Standardwert im Fang zurückgeben, um den Prozess fortzusetzen. 3. Combinatoren wie Promise.All () (erfolgreich erfolgreich erfolgreich nach allen Erfolg), Versprechen.Race () (Die erste Fertigstellung wird zurückgegeben) und Versprechen.Allsettled () (Warten auf alle Fertigstellungen)

Was ist die Cache -API und wie wird sie bei Dienstangestellten verwendet? Was ist die Cache -API und wie wird sie bei Dienstangestellten verwendet? Jul 08, 2025 am 02:43 AM

Cacheapi ist ein Tool, das der Browser zur Cache -Netzwerkanfragen bereitstellt, das h?ufig in Verbindung mit dem Servicearbeiter verwendet wird, um die Leistung der Website und die Offline -Erfahrung zu verbessern. 1. Es erm?glicht Entwicklern, Ressourcen wie Skripte, Stilbl?tter, Bilder usw. Zu speichern; 2. Es kann die Cache -Antworten entsprechend den Anfragen übereinstimmen. 3. Es unterstützt das L?schen bestimmter Caches oder das L?schen des gesamten Cache. 4.. Es kann Cache -Priorit?ts- oder Netzwerkpriorit?tsstrategien durch Servicearbeiter implementieren, die sich auf Fetch -Ereignisse anh?ren. 5. Es wird h?ufig für die Offline -Unterstützung verwendet, die wiederholte Zugriffsgeschwindigkeit, die Vorspannungs -Schlüsselressourcen und den Inhalt des Hintergrundaktualisierungss beschleunigen. 6. Wenn Sie es verwenden, müssen Sie auf die Cache -Versionskontrolle, Speicherbeschr?nkungen und den Unterschied zum HTTP -Caching -Mechanismus achten.

Nutzung von Array.Prototyp -Methoden zur Datenmanipulation in JavaScript Nutzung von Array.Prototyp -Methoden zur Datenmanipulation in JavaScript Jul 06, 2025 am 02:36 AM

JavaScript-Array-integrierte Methoden wie .Map (), .filter () und .Reduce () k?nnen die Datenverarbeitung vereinfachen. 1) .Map () wird verwendet, um Elemente eins in eins um Neuarrays zu konvertieren; 2) .Filter () wird verwendet, um Elemente durch Bedingung zu filtern; 3) .Reduce () wird verwendet, um Daten als einzelner Wert zu aggregieren; Missbrauch sollte bei der Verwendung vermieden werden, was zu Nebenwirkungen oder Leistungsproblemen führt.

JS Roundup: Ein tiefes Eintauchen in die JavaScript -Ereignisschleife JS Roundup: Ein tiefes Eintauchen in die JavaScript -Ereignisschleife Jul 08, 2025 am 02:24 AM

Die Ereignisschleife von JavaScript verwaltet asynchrone Vorg?nge, indem sie Call -Stapel, Webapis und Task -Warteschlangen koordinieren. 1. Der Anrufstack führt synchronen Code aus, und wenn er auf asynchrone Aufgaben begegnet, wird er zur Verarbeitung an Webapi übergeben. 2. Nachdem das Webapi die Aufgabe im Hintergrund abgeschlossen hat, wird der Rückruf in die entsprechende Warteschlange (Makroaufgabe oder Micro -Aufgabe) eingebaut. 3. Die Ereignisschleife prüft, ob der Anrufstapel leer ist. Wenn es leer ist, wird der Rückruf aus der Warteschlange herausgenommen und zur Ausführung in den Anrufstapel geschoben. V. 5. Das Verst?ndnis der Ereignisschleife hilft zu vermeiden, den Haupt -Thread zu blockieren und die Codeausführungsreihenfolge zu optimieren.

See all articles