จะใช้ <md-icon> ใน Angular Material ได้อย่างไร?


102

ฉันสงสัยว่าจะใช้ไอคอนของวัสดุได้อย่างไรเนื่องจากไม่ได้ผล:

<material-icon icon = "/img/icons/ic_access_time_24px.svg"> </material-icon> 

ฉันเดาว่ามีปัญหากับเส้นทางที่กำหนดให้เป็นพารามิเตอร์ของแอตทริบิวต์ icon ฉันต้องการทราบว่าโฟลเดอร์ไอคอนนี้อยู่ที่ไหน?

คำตอบ:


151

เนื่องจากคำตอบอื่น ๆ ไม่ได้ตอบข้อกังวลของฉันฉันจึงตัดสินใจเขียนคำตอบของตัวเอง

เส้นทางที่กำหนดในแอตทริบิวต์ icon ของmd-iconคำสั่งคือ URL ของไฟล์. png หรือ. svg ที่อยู่ในไดเร็กทอรีไฟล์แบบคงที่ของคุณ ดังนั้นคุณต้องวางเส้นทางที่ถูกต้องของไฟล์นั้นในแอตทริบิวต์ icon ps ใส่ไฟล์ในไดเร็กทอรีที่ถูกต้องเพื่อให้เซิร์ฟเวอร์ของคุณสามารถให้บริการได้

จำไว้ว่าmd-iconไม่เหมือนไอคอน bootstrap ปัจจุบันเป็นเพียงคำสั่งที่แสดงไฟล์. svg

อัปเดต

การออกแบบวัสดุเชิงมุมมีการเปลี่ยนแปลงอย่างมากนับตั้งแต่มีการโพสต์คำถามนี้

ตอนนี้มีหลายวิธีในการใช้ md-icon

วิธีแรกคือใช้ไอคอน SVG

<md-icon md-svg-src = '<url_of_an_image_file>'></md-icon>

ตัวอย่าง:

<md-icon md-svg-src = '/static/img/android.svg'></md-icon>

หรือ

<md-icon md-svg-src = '{{ getMyIcon() }}'></md-icon>

: getMyIconวิธีการที่กำหนดไว้ใน$scope.

หรือ <md-icon md-svg-icon="social:android"></md-icon>

ในการใช้สิ่งนี้คุณต้องใช้$mdIconProviderบริการเพื่อกำหนดค่าแอปพลิเคชันของคุณด้วยชุดไอคอน svg

angular.module('appSvgIconSets', ['ngMaterial'])  
  .controller('DemoCtrl', function($scope) {})  
  .config(function($mdIconProvider) {
    $mdIconProvider
      .iconSet('social', 'img/icons/sets/social-icons.svg', 24)
      .defaultIconSet('img/icons/sets/core-icons.svg', 24);    
  });

วิธีที่สองคือการใช้ไอคอนแบบอักษร

<md-icon md-font-icon="android" alt="android"></md-icon>

<md-icon md-font-icon="fa-magic" class="fa" alt="magic wand"></md-icon>

ก่อนที่จะทำสิ่งนี้คุณต้องโหลดไลบรารีแบบอักษรเช่นนี้ ..

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

หรือใช้ไอคอนแบบอักษรที่มีอักษรควบ

<md-icon md-font-library="material-icons">face</md-icon>

<md-icon md-font-library="material-icons">#xE87C;</md-icon>

<md-icon md-font-library="material-icons" class="md-light md-48">face</md-icon>

สำหรับรายละเอียดเพิ่มเติมตรวจสอบของเรา

เอกสารคำสั่งวัสดุเชิงมุม mdIcon

เอกสารบริการ $ mdIcon

$ mdIconProvider บริการเอกสาร


1
หมายเหตุด่วนเกี่ยวกับลิเกเจอร์: ใช้เครื่องหมายขีดล่างแทนขีดกลาง อาจมีการบันทึกไว้บางแห่งในลิงก์รายละเอียดเพิ่มเติมของคุณ แต่ไม่มีใครมีเวลาสำหรับ dat ;-)
Olson.dev

วิธีที่เหมาะสมในการระบายสีคืออะไร?
theblang

@mattblang หากคุณใช้เป็นไอคอนแบบอักษรแสดงว่าเป็นเพียงแบบอักษร ดังนั้นการตั้งค่าสีข้อความใน css (เช่น {color: red}) จะทำให้สีเหล่านั้น
tanou

1
สิ่งที่ฉันต้องการ ฉันกำลังดิ้นรนกับสไตล์ในขณะที่ใช้<i class='material-icons'>icon_name</i>แต่md-font-libraryแก้ไขปัญหาได้อย่างสมบูรณ์แบบ
Pieter VDE

เหตุใดการใช้ตัวแปรในไอคอน md จึงไม่ทำงาน เช่น <md-icon md-font-library = "material-icons"> {{user.type}} </md-icon> .. ในกรณีนี้คือ user.type = "face" และใช้เป็นข้อความจะใช้งานได้ < md-icon md-font-library = "material-icons"> ใบหน้า </md-icon>
mariomol

31

วิธีที่ง่ายที่สุดในวันนี้คือขอแบบอักษร Material Icons จาก Google Fonts ตัวอย่างเช่นในแท็กส่วนหัว HTML ของคุณ:

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

หรือในสไตล์ชีตของคุณ:

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

แล้วใช้เป็นไอคอนตัวอักษรด้วยหนังสติ๊กตามที่อธิบายไว้ในคำสั่ง MD-ไอคอน ตัวอย่างเช่น:

<md-icon aria-label="Menu" class="material-icons">menu</md-icon>

รายการไอคอน / สัญลักษณ์ทั้งหมดอยู่ที่https://www.google.com/design/icons/


จะเพิ่มไอคอนลงในปุ่มได้อย่างไร?
Alexander Mills

28

ตอนนี้ใช้งานได้จริงจาก bower

bower install material-design-icons --save

ดาวน์โหลด 37.1 KB จากนั้นจะแยกและติดตั้ง คุณจะเห็นโฟลเดอร์ชื่อ material-design-icons ในโฟลเดอร์ bower_components ขนาดรวมประมาณ 299KBs


20
และวิธีการใช้งาน?
Ernst Ernst


5

วิธีง่ายๆ: ใช้ CDN ต่อไปนี้:

<script src="//cdnjs.cloudflare.com/ajax/libs/angular-material-icons/0.5.0/angular-material-icons.min.js"></script> 

ฉีด ngMdIcons ไปยังแอปพลิเคชัน angularjs ของคุณ:

angular.module('demoapp', ['ngMdIcons']);

ใช้คำสั่ง ng-md-icon ใน html ของคุณโดยระบุสีเติมผ่าน css:

<ng-md-icon icon="..." style="fill: ..." size="..."></ng-md-icon> 

ที่มา: https://klarsys.github.io/angular-material-icons/


2
มันng-mdไม่น่ารำคาญตรงกลางไอคอนในปุ่มไอคอนเช่นไอคอน md ทำ
มุสตาฟา

ใช่ปัญหาเดียวกันที่นี่ ส่วนใหญ่คุณจะต้องปรับแต่งตำแหน่งด้วย css position:relative;จากนั้นย้ายองค์ประกอบ svg หรือคอนเทนเนอร์by left-top-right-bottomไปยังตำแหน่งที่ดีกว่าที่คุณต้องการ
Asqan


1

md-คำนำหน้าทั้งหมดเป็นmat-คำนำหน้าเมื่อเขียนสิ่งนี้!

ใส่สิ่งนี้ไว้ในหัว html ของคุณ:

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

นำเข้าในโมดูลของเรา:

import { MatIconModule } from '@angular/material';

ใช้ในรหัสของคุณ:

<mat-icon>face</mat-icon>

นี่คือเอกสารล่าสุด:

https://material.angular.io/components/icon/overview


OP ใช้วัสดุ AngularJS
Edric


0

โดยใช้ like
ใช้ css และ font ตำแหน่งเดียวกัน

@font-face {
    font-family: 'Material-Design-Icons';
    src: url('Material-Design-Icons.eot');
    src: url('Material-Design-Icons.eot?#iefix') format('embedded-opentype'),
         url('Material-Design-Icons.woff2') format('woff2'),
         url('Material-Design-Icons.woff') format('woff'),
         url('Material-Design-Icons.ttf') format('truetype'),
         url('Material-Design-Icons.svg#ge_dinar_oneregular') format('svg');
    font-weight: normal;
    font-style: normal;
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.