So verwenden Sie benutzerdefinierte Symbole in Winkelmaterial

Veröffentlicht: 2023-02-16

Wenn Sie benutzerdefinierte Symbole in Angular Material verwenden möchten, müssen Sie einige Schritte ausführen. Zuerst müssen Sie Ihr eigenes Icon-Set erstellen. Angular Material wird mit einem integrierten Satz von Symbolen geliefert, aber Sie können auch Ihre eigenen erstellen. Sobald Sie Ihre Symbole haben, müssen Sie sie bei Angular Material registrieren. Dies kann in der Moduldatei Ihrer App erfolgen. Sobald Ihre Symbole registriert sind, können Sie sie wie die integrierten Symbole verwenden. Sie können sie in Ihrem Markup verwenden oder programmgesteuert darauf zugreifen. Das ist alles, was Sie brauchen, um benutzerdefinierte Symbole in Angular Material zu verwenden! Indem Sie diesen Schritten folgen, können Sie ganz einfach Ihre eigenen Symbole zu Angular Material hinzufügen, um sie in Ihren Anwendungen zu verwenden.

In diesem Lernprogramm verwenden wir die Komponente >mat-icon>, um die Schriftart Material Icons zu erstellen. Die Komponente wird zusätzlich zur Unterstützung eines benutzerdefinierten sva-Symbols verwendet. Auf GitHub finden Sie den vollständigen Arbeitscode. Dieser Beitrag ist für diejenigen, die nur Angular v4.2+ lernen. Das Angular-Material für dieses Tutorial wurde ursprünglich in Angular 5.2 und Angular 10.1 geschrieben. Das Symbol, das wir in diesem Tutorial verwenden (das einem Gesicht mit einem Lächeln ähnelt), ist das Stimmungssymbol. Zusätzlich zu einer umfassenden Liste von Materialsymbolen bietet die Materialdesign-Website eine Vielzahl von Symbolstilen , die eigenständig verwendet werden können.

Wir können jetzt das Maussymbol verwenden, um SVGs anzuzeigen. Indem Sie eine Bezeichnung in die Eingabeeigenschaft einer HTML-Datei eingeben, können Sie die Symbolbezeichnung verwenden, um anzugeben, auf welches Symbol zugegriffen wird. Die URL sollte https://app.html lauten. Werfen wir einen Blick auf das, was derzeit verfügbar ist. Wenn Sie sich die Anwendung in Ihrem Browser ansehen, werden Sie feststellen, dass das benutzerdefinierte Symbol in Material gestaltet ist. Das Verschieben von MatIconRegistry in eine Dienstklasse hilft dabei, den Code zu verwalten und sauberer zu machen.

Wie verwende ich SVG-Icons in Angular 12?

Wie verwende ich SVG-Icons in Angular 12?
Foto von: https://svgjs.dev

Um SVG-Symbole in Angular 12 verwenden zu können, müssen Sie die Pakete @angular/material und @angular/material-extensions installieren. Sie können dann den Dienst matIconRegistry verwenden, um die Symbole zu registrieren und sie Ihren Komponenten hinzuzufügen.

Sie können den Code in Angular2 verwalten, indem Sie Ihre Icon.svg-Datei als Ihr eigenes verwenden. Darüber hinaus kann das Modul ng-inline-svg (oder, falls möglich, andere ähnliche Ansätze) verwendet werden, um dies zu tun. Infolgedessen ist es im Wesentlichen etwas in der Mitte – Sie haben separate Dateien für jeden Bildtyp, wobei die Bilder beim Laden der Seite inline sind, sodass Sie sie mit JS/CSS bearbeiten können.

Die Verwendung von aria-describedby als Teil Ihres SVG ermöglicht es Benutzern mit Behinderungen, Ihre Website besser zu nutzen. Wenn Sie also Ihre Symbole mit aria-beschrieben von beschreiben, können Sie sicherstellen, dass Benutzer mit Behinderungen verstehen können, was sie darstellen.

Die Debatte von Png Vs. SVG-Symbole

Andererseits kann einer SVG-Datei auch ein Alphakanal hinzugefügt werden. Mit anderen Worten, weil sie in transparente Bereiche eingefügt werden können, während ein wenig Farbe beibehalten wird, sind SVG-Symbole vielseitiger als PNG-Symbole . Die Wahl der für Ihre Symbole zu verwendenden Datei hängt von Ihrem spezifischen Projekt und seinen Anforderungen ab.

Wie verwende ich benutzerdefinierte SVG-Symbole in HTML?

Wie verwende ich benutzerdefinierte SVG-Symbole in HTML?
Foto von: https://onlinewebfonts.com

Um benutzerdefinierte SVG-Symbole in HTML zu verwenden, müssen Sie den Dateipfad des Symbols in das href-Attribut des Symbolelements aufnehmen. Der Dateipfad sollte relativ zum Stammverzeichnis der Seite sein. Wenn sich das Symbol beispielsweise in einem Ordner namens „Symbole“ im Stammverzeichnis befindet, lautet der Dateipfad „Symbole/Symbol.svg“.

Seit der Einführung von Online-Tools wie Icomoon und Fontello sind Webfonts viel einfacher zu erstellen. Mit HTML5 haben wir dank Scalable Vector Graphics Zugriff auf eine viel breitere Palette von Symbolen. Wenn Sie technischen Support für Explorer 8 bereitstellen möchten, gibt es einige einfache Fallback-Optionen. Der Bezeichner für ein Fragment ist eine integrierte SVG-Eigenschaft. Wir können auf ein Fragment verweisen, wenn wir eine SVG-Ansichtsspezifikation verwenden oder ein Array ansprechen möchten. Dieses Element ist ein SVG-Element basierend auf seiner >view>-ID. Um nur das schwarze Pferd aus diesem Schachfiguren-Sprite (aus Wikipedia Commons) anzuzeigen, müssen Sie Werte genau so erkennen, wie Sie es im Schema unten tun würden.

Die Verwendung des img-Tags zur Definition des Bildes funktioniert gut mit Firefox, Chrome, Safari (Desktop) und Opera. Alternativ können Sie eine externe SVG-Datei verwenden, um CSS-Sprites zu erstellen, wie in der Abbildung unten gezeigt. Dies ist eine zuverlässige, gebrauchsfertige Herstellungstechnik. Ich habe es in einer Vielzahl von gängigen Browsern (einschließlich IE8) getestet und es hat perfekt funktioniert. Symbole erscheinen auf dem Bildschirm als Tag. Auch hier kann Icomoon verwendet werden, um die Sammlung von Symbol-Tags manuell zu erstellen, oder Sie können dazu ein Grunt-Plugin (google for Grunt SVG merge) verwenden. Mit Ausnahme von IE9 kann diese Methode mit allen gängigen Browsern verwendet werden. Sogar die Lösung von Jonathan Neal, SVG4everybody, kann verwendet werden, um dieses Problem zu lösen.

Sofern der Quellcode nicht das gewünschte width-Attribut angibt, wird ein sva-Bild nicht im Chrome-Browser angezeigt. Wenn das SVG dieses Attribut nicht hat, vergrößert oder verkleinert der Browser das Bild.

So verwenden Sie SVG-Bilder auf Ihrer Webseite

Sie können SVG-Bilder direkt in HTML einfügen, indem Sie das Tag svg> /svg> verwenden. Auf das SVG-Bild kann in VS-Code oder Ihrer bevorzugten IDE zugegriffen werden, indem Sie den Code kopieren und in das body-Element Ihres HTML-Dokuments einfügen. Wenn alles reibungslos verlaufen wäre, würde Ihre Webseite genauso aussehen wie die hier gezeigte.
Symbole können mit SVG-Bildern erstellt werden, indem Sie einfach ihren Namen in einen Webbrowser eingeben. In sie kann HTML eingebettet und zwischengespeicherte Versionen davon installiert werden. Die Beweise sind auch für die Zukunft vielversprechend. Icons sollten mit PNGs oder Scalable Graphic Interfaces (SVGs) erstellt werden.


Winkelmaterial-Svg-Symbolliste

Die Angular-Materialbibliothek bietet eine Reihe wiederverwendbarer, gut getesteter und zugänglicher UI-Komponenten, die auf der Materialdesign-Spezifikation von Google basieren. Eines der Features der Bibliothek ist die Möglichkeit, SVG-Icons als Material-Icons zu verwenden. Das Icon-Set für eckiges Material enthält eine Vielzahl von Icons, einschließlich Social-Media-Icons, Dateityp-Icons und Pfeilen. Sie können die vollständige Liste der eckigen Materialsymbole auf der Website für Materialsymbole durchsuchen.

Symbole können mit der Mat -Icon-Komponente von Angular Material angezeigt werden. Das Hauptmerkmal dieser Komponente ist die Fähigkeit, Bilder mithilfe von Webfonts wie Font-awesome anzuzeigen, für die lediglich der Name des gewünschten Bilds erforderlich ist. Was passiert mit Symbolen, die nicht in Webfonts gehören? Möchten Sie im Symbol zur Laufzeit Änderungen vornehmen (z. B. die Farbe beim Hover oder den Status der Schaltfläche an einer bestimmten Stelle)? Der folgende Fehler wird angezeigt, nachdem Sie den Abschnitt der Browserkonsole geöffnet haben. Bei Verwendung des Ressourcen-URL-Kontexts wird der Wert unsicher verwendet. Das Definieren der URL als Parameter wird verwendet, um SecurityTrustResourceUrl zu umgehen, was verhindert, dass ein Angreifer eine schädliche URL wie diese einfügt, siehe offizielle Dokumentation von DomSanitizer.

Wir werden uns später eine bessere Methode ansehen, aber im Moment werden wir diese einfach auf der Seite app.html platzieren. Fügen Sie wie oben beschrieben eine Klasse im HTML-Tag maticon hinzu. Wenn ein Benutzer mit der Maus über das Symbol fährt, ändert sich die Farbe des Bildes als Ergebnis des SCSS. Symbole sollten jetzt ihre Farbe ändern, wenn man mit der Maus darüber fährt. Als Teil eines zukünftigen Beitrags werden wir uns damit befassen, dies zu verbessern und umzugestalten, damit Symbole mithilfe eines Dienstes geladen werden können.

So verwenden Sie eckige Materialsymbole

Wo finde ich eckige Materialsymbole?
Das Einzige, was Sie tun müssen, ist das folgende CSS für Google Webfonts in Ihrem HTML-Code zu verwenden. Materialsymbole befinden sich in einer einzigen Datei (42 KB) und haben eine Größe von groß bis klein. Symbole sind in zehn verschiedene Kategorien unterteilt, die Sie im Git-Repository sehen können. Die Icons können auch auf Ihrem eigenen Server gehostet werden.
Was sind einige der guten Seiten, um Materialsymbole zu sehen?
Wir haben die Materialsymbole in einem Git-Repository zusammengestellt, das alle Formate enthält, in denen wir sie zur Verfügung stellen.
Wie kann ich mein Symbol am besten anpassen?
Das Klassenelement muss wie oben gezeigt zum HTML-Tag mat-icon hinzugefügt werden. Das Hinzufügen des SCSS zur Klasse ändert die Farbe des Symbols, wenn ein Benutzer den Mauszeiger darüber bewegt. Wenn Sie mit der Maus über die Symbole fahren, sollten sie jetzt ihre Farbe ändern.

So verwenden Sie eckige Materialsymbole

Angular Material-Symbole sind SVGs, die in Ihrer Angular-Anwendung verwendet werden können. Um ein Symbol zu verwenden, fügen Sie einfach die Symbolklasse zu einem Element hinzu. Um beispielsweise das Kontokreissymbol zu verwenden, würden Sie einem Element die Klasse mat-icon-account-circle hinzufügen.

Wir haben Materialbibliotheken in Angular, die verwendet werden können, um unsere Anwendung schnell zu entwerfen und ihr die In-Build-Tags zuweisen zu lassen. Die Materialbibliothek enthält ein Mat-Icon, das benötigt wird, um uns Icons anzuzeigen. In den folgenden Abschnitten erfahren Sie, wie Sie die erforderlichen Bibliotheken installieren und wie Sie dies implementieren, um Symbole in unserer Anwendung anzuzeigen. Unser erster Dienst ist MatIconRegistry, eine Registrierung, die es uns ermöglicht, Aliase für Symbole mithilfe eines injizierbaren Dienstes zu identifizieren und zu definieren. Das Symbol ist sehr einfach zu verwenden, erfordert jedoch, dass diese Direktive in das Projekt oder Root-Modul importiert wird, in dem wir es anzeigen möchten. Starten Sie den oben genannten Befehl an Ihrer Eingabeaufforderung, um ein neues Winkelprojekt zu erstellen. Bitte versuchen Sie einen der unten aufgeführten Befehle, um sicherzustellen, dass alle erforderlichen Bibliotheken in unserem Projekt installiert sind. Dies gilt insbesondere für Entwickler, die die Bibliothek und das Modul direkt in unserer Anwendung verwenden können, ohne sich um die Schritte zum Hinzufügen der Bibliothek und des Moduls zum Root-Modul kümmern zu müssen.

Mat-Symbol Svg

Ein Mat- Icon-Svg ist eine einfache Vektorgrafik, die zur Darstellung eines Symbols oder Logos verwendet werden kann. Die Grafik kann ohne Qualitätsverlust in der Größe verändert und einfach bearbeitet oder geändert werden.

Mit der Mat-ion-Komponente für Winkelmaterialien können wir lokale SVGs generieren. Wir fügen den MatIconRegistry-Dienst sowie den DomSanitizer in den Konstruktor ein. Die Funktion registerIcons() enthält die Parameter load und URL sowie eine private Funktion namens load. Wenn wir diese Variante verwenden, müssen wir nur den Namen der Bilddatei hinzufügen. Wenn Sie eine Zeichenfolge verwenden, ist die Ladefunktion von icon.service etwas anders. Der Bildname wird generiert, indem der Index als Schlüssel für den Bildnamen in der Ladefunktion verwendet wird. Dieser Dienst muss nun aktiviert werden, wenn die Anwendung zu laden beginnt. Es ist viel einfacher, den Code zu lesen und zu pflegen, weil er viel besser lesbar ist. Wir haben die Bilder in separate Abschnitte unterteilt und einen einfacheren Dienst implementiert.