कोणीय सामग्री आइकन काम नहीं कर रहे हैं


99

मैंने कोणीय के लिए सामग्री स्थापित की है,

मैंने अपने ऐप मॉड्यूल MatIconModule (के साथ import { MatIconModule } from '@angular/material/icon';) पर आयात किया है

मैंने इसे अपने ngmodule आयातों के साथ जोड़ा है:

@NgModule({
    imports: [ 
//...
MatIconModule, 
//...

मैंने सभी स्टाइलशीट आयात किए हैं

और मैंने इसे अपने ऐप कंपोनेंट में भी इंपोर्ट किया है जो वास्तव में (इनकी import {MatIconModule} from '@angular/material/icon';शुरुआत में एक और लाइन के साथ) यूज करने की कोशिश कर रहा है ।

लेकिन सामग्री आइकन अभी भी दिखाई नहीं देते हैं।

उदाहरण के लिए, इस पंक्ति के साथ:

<button mat-icon-button (click)="snav.toggle()"><mat-icon>menu</mat-icon></button>

मैं कुछ इस तरह की उम्मीद कर रहा हूँ:

अपेक्षित होना

लेकिन मुझे यह मिलता है:

वास्तविक

कोई सुझाव मिला?


फ़ॉन्ट अनुपलब्ध हो सकता है। या इसे बाद में लोड किया जाता है।
बसवराज भुसानी

@ बासवराजभूसानी मैं इसकी जाँच कैसे कर सकता हूँ?

नीचे से समाधान करने के बाद, आपको ब्राउज़र कैश साफ़ करना चाहिए। यह मेरे लिए काम किया।
आदित्य यदा

जवाबों:


194

सामग्री प्रतीक के लिए सीएसएस स्टाइलशीट जोड़ें!

अपने index.html में निम्नलिखित जोड़ें:

<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">

देखें - https://github.com/angular/material2/issues/7948


10
इस जवाब ने मेरे लिए काम किया लेकिन मैं इस लाइन को भी शैलियों में शामिल करने में सक्षम था। ss और इसने काम किया। @import 'https://fonts.googleapis.com/icon?family=Material+Icons';
जे। चन्नी

20
आप @import "~material-icons/iconfont/material-icons.css";अपनी
शैलियों में

5
@PoononBanerjee सामग्री-चिह्न एक अलग परियोजना है, जिसे एंगुलर मटीरियल टीम द्वारा बनाए नहीं रखा गया है।
वेदरन

45

कोणीय 6+ के लिए:

  1. npm इसे स्थापित करें: npm install material-design-icons
  2. स्टाइल्स को angular.json में जोड़ें:

    "styles": [
      "node_modules/material-design-icons/iconfont/material-icons.css"
    ]
    

1
यह इसे करने के लिए उचित कोणीय तरीका है!
विल्ट

1
... और Apps के लिए कोणीय (जैसे कॉर्डोवा के साथ) का उपयोग करते समय इसे करने का उचित तरीका
CularBytes

यह मेरे लिए काम करता है। Google एपीआई का उपयोग करने के बजाय, मैं सामग्री डिजाइन स्थापित करता हूं।
अधिकतम

29

यदि SASS का उपयोग करने के लिए आपको केवल इस लाइन को अपनी मुख्य .scssफ़ाइल में जोड़ना है :

@import url("https://fonts.googleapis.com/icon?family=Material+Icons");

यदि आप Google से आइकन प्राप्त करने से बचना पसंद करते हैं, तो आप सामग्री प्रतीक गाइड में वर्णित आइकन को स्वयं-होस्ट कर सकते हैं :

वेब फ़ॉन्ट को स्वयं होस्ट करने की चाह रखने वालों के लिए, कुछ अतिरिक्त सेटअप आवश्यक है। आइकन फ़ॉन्ट को किसी स्थान पर होस्ट करें, उदाहरण के लिए https://example.com/material-icons.woff और निम्नलिखित सीएसएस नियम जोड़ें:

@font-face {
  font-family: 'Material Icons';
  font-style: normal;
  font-weight: 400;
  src: url(https://example.com/MaterialIcons-Regular.eot); /* For IE6-8 */
  src: local('Material Icons'),
    local('MaterialIcons-Regular'),
    url(https://example.com/MaterialIcons-Regular.woff2) format('woff2'),
    url(https://example.com/MaterialIcons-Regular.woff) format('woff'),
    url(https://example.com/MaterialIcons-Regular.ttf) format('truetype');
}

इसके अलावा, आइकन को रेंडर करने के लिए सीएसएस नियमों को फ़ॉन्ट को ठीक से प्रस्तुत करने के लिए घोषित करने की आवश्यकता होगी। ये नियम सामान्य रूप से Google वेब फ़ॉन्ट स्टाइलशीट के हिस्से के रूप में दिए जाते हैं, लेकिन फ़ॉन्ट को सेल्फ होस्ट करते समय आपको अपनी परियोजनाओं में मैन्युअल रूप से शामिल करने की आवश्यकता होगी:

.material-icons {
  font-family: 'Material Icons';
  font-weight: normal;
  font-style: normal;
  font-size: 24px;  /* Preferred icon size */
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;

  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;

  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;

  /* Support for IE. */
  font-feature-settings: 'liga';
}

जब आइकन रेंडर नहीं कर रहा था तब समस्या का सामना करना पड़ा और इसके बजाय क्लोज़ टेक्स्ट प्रदर्शित हो रहा था। मेरी scss फ़ाइल में उपरोक्त आयात को जोड़ा और यह 'X' आइकन प्रदर्शित करने लगा। धन्यवाद :)
vinsinraw

मेरे पास कोणीय 9 परियोजना है और आयात सामग्री आइकन फ़ॉन्ट फ़ाइल में .scss के बाद, अभी भी एक ही मुद्दा, सामग्री आइकन दिखाई नहीं दे रहा है, यह कॉर्डोवा का उपयोग करके बनाई गई परीक्षण 'दृश्यता_ऑफ' .apk फ़ाइल प्रदर्शित कर रहा है। लेकिन वही लोकलहोस्ट में ठीक काम कर रहा है: 4200 तो क्या इसका कोई और उपाय है?
जिग्नेश गोठडिय़ा

13

मेरे मामले में, एक शैली लागू थी जो फ़ॉन्ट परिवार को ओवरराइड करती है। इसलिए, मैंने फ़ॉन्ट परिवार शैली को स्पष्ट रूप से इस तरह जोड़ा:

.material-icons{
    font-family: 'Material Icons' !important;
}

11

आपको MatIconModule को आयात करना चाहिए और index.html में निम्न यूआरएल का उपयोग करना चाहिए

<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">

5

पूर्ण समाधान हो सकता है:

पहला कदम

आपको MatIconModuleअपनी परियोजना में आयात करना होगा, मेरी परियोजना में मैं एक अलग फ़ाइल में आवश्यक घटक आयात करता हूं फिर मैं इसे AppModule में आयात करता हूं, आप इसका उपयोग कर सकते हैं या उन्हें सीधे आयात कर सकते हैं:

import { NgModule } from "@angular/core";
import { MatButtonModule } from '@angular/material';
import { MatIconModule } from '@angular/material/icon';

@NgModule({
    imports: [MatIconModule, MatButtonModule], // note the imports 
    exports: [MatIconModule, MatButtonModule], // and the exports
})
export class MaterialModule { }

दूसरा चरण

आइकन फ़ॉन्ट को अपने में लोड करें index.html:

<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">


2

मेरे मामले में आइकन दिखाई नहीं दिए क्योंकि मैंने महत्वपूर्ण उपयोग करके अपने फोंट को खराब कर दिया है। बाहर ले जाने के कारण आइकन दिखाई दिए।


2

मैं मेरे लिए प्रदर्शित नहीं होने वाले आइकन के मुद्दे में भाग गया। मैंने बसवराज भुसानी द्वारा प्रदान किए गए कदमों का पालन किया था लेकिन अभी भी काम नहीं कर रहा है।

मैंने पाया कि मुद्दा यह था कि मेरी स्कैस में, मेरे पास text-transform: uppercaseवह आइकन था जो सामग्री को केवल 'arrow_forward' प्रदर्शित करने के लिए प्रेरित कर रहा था । मुझे text-transform: noneविशेष रूप से आइकन पर बदलना होगा अन्यथा यह रेंडर नहीं होगा।

                .child-item-action {

                    text-transform: uppercase;

                    &:after {

                        font-family: 'Material Icons';
                        content: "arrow_forward";
                        text-transform: none;
                        -webkit-font-feature-settings: 'liga';

                    }

धन्यवाद! घंटों तक इस पर अटका रहा!
हॉवर्ड ब्रायनजुल्फसेन

1

मैंने महसूस किया कि किसी ने भी अपने ऐप को आयात करने से पहले पहली बार में हथौड़े चलाने की बात नहीं की। वैसे लोगों के लिए जिनके पास एक समान मुद्दा है आपको पहली बार में हथौड़े को आयात करने की आवश्यकता है, आप स्थापना के लिए या तो एनपीएम, यार्न या गूगल सीडीएन का उपयोग कर सकते हैं। यह उत्तर एनपीएम या यार्न के साथ संस्थापन के लिए है:

NPM

npm install --save hammerjs

धागा

yarn add hammerjs

इंस्टॉल करने के बाद, इसे अपने ऐप के प्रवेश बिंदु (जैसे src / main.ts) पर आयात करें।

import 'hammerjs';

अगर आप Google CDN का उपयोग करना चाहते हैं तो कृपया अधिक विवरण के लिए कोणीय सामग्री पर जाएँ https://material.angular.io/guide/getting-started


1

गलत चिह्न का नाम : कुछ सामग्री चिह्न का नाम गलत है।

उदाहरण के लिए : सामग्री चिह्न के लिए filter_alt प्रदान करता है

यहां छवि विवरण दर्ज करें

<mat-icon aria-hidden="false" aria-label=" filter icon">filter_alt</mat-icon>

लेकिन यह 😟 दिखाता है

यहां छवि विवरण दर्ज करें

फिक्स: हमें फ़नल प्रकार आइकन के लिए filter_list_alt का उपयोग करना होगा

<mat-icon aria-hidden="false" aria-label="filter icon">filter_list_alt</mat-icon>

0

यदि आपने कुछ मौजूदा कोणीय सामग्री स्टाइल या किसी अन्य स्टाइल को अधिलेखित कर दिया है जो किसी भी तरह से आइकन को प्रभावित करता है, तो यह एक समस्या का कारण हो सकता है। किसी भी स्टाइल और परीक्षण के बाहर आइकन कोड को स्थानांतरित करें।

मेरे लिए यह फ़ॉन्ट-संस्करण था: छोटे-कैप;

इसलिए मैंने इसे बाल तत्व में स्थानांतरित कर दिया। नीचे कोणीय सामग्री ग्रिड का हिस्सा है।

  <mat-grid-tile colspan="3" rowspan="1" class='title customGlobalGrid'>
    <mat-icon aria-hidden="false" aria-label="Example home icon">home</maticon>
    <span style="font-variant: small-caps;">{{item['title']}}</span>
  </mat-grid-tile>


-2
**Add following code to your css**

 .material-icons {  
    /* Support for all WebKit browsers. */
    -webkit-font-smoothing: antialiased;

    /* Support for Safari and Chrome. */
    text-rendering: optimizeLegibility;

    /* Support for Firefox. */
    -moz-osx-font-smoothing: grayscale;

    /* Support for IE. */
    font-feature-settings: 'liga';
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.