Angular Material - 圖示



md-icon 是一個 Angular 指令,是一個用於在應用程式中顯示基於向量的圖示的元件。除了使用 Google Material Icons 外,它還支援圖示字型和 SVG 圖示。

屬性

下表列出了md-icon的不同屬性的引數和描述。

序號 引數及描述
1

* md-font-icon

這是與字型關聯的 CSS 圖示的字串名稱,它將用於渲染圖示。需要預載入字型和命名的 CSS 樣式。

2

* md-font-set

這是與字型庫關聯的 CSS 樣式名稱,它將作為字型圖示連字的類分配。此值也可能是一個用於查詢類名的別名;在內部使用 $mdIconProvider.fontSet(<alias>) 來確定樣式名稱。

3

* md-svg-src

這是用於載入、快取和顯示外部 SVG 的字串 URL(或表示式)。

4

* md-svg-icon

這是用於從內部快取中查詢圖示的字串名稱;也可以使用插值字串或表示式。特定集合名稱可以使用語法 <集合名稱>:<圖示名稱> 使用。要使用圖示集,開發人員需要使用 $mdIconProvider 服務預先註冊這些集。

5

aria-label

這為圖示新增輔助功能標籤。如果提供空字串,則圖示將使用 aria-hidden = "true" 從輔助功能層隱藏。如果圖示上沒有 aria-label,並且父元素上也沒有標籤,則會向控制檯記錄警告。

6

alt

這為圖示新增輔助功能標籤。如果提供空字串,則圖示將使用 aria-hidden = "true" 從輔助功能層隱藏。如果圖示上沒有 alt,並且父元素上也沒有標籤,則會向控制檯記錄警告。

示例

以下示例顯示了 md-icons 指令的使用以及圖示的使用。

am_icons.htm

<html lang = "en">
   <head>
      <link rel = "stylesheet"
         href = "https://ajax.googleapis.com/ajax/libs/angular_material/1.0.0/angular-material.min.css">
      <script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
      <script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-animate.min.js"></script>
      <script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-aria.min.js"></script>
      <script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-messages.min.js"></script>
      <script src = "https://ajax.googleapis.com/ajax/libs/angular_material/1.0.0/angular-material.min.js"></script>
      <link rel = "stylesheet" href = "https://fonts.googleapis.com/icon?family=Material+Icons">
      <style>
         .iconDemo .glyph {
            border-bottom: 1px dotted #ccc;
            padding: 10px 0 20px;
            margin-bottom: 20px; 
         }
         
         .iconDemo .preview-glyphs {
            display: flex;
            flex-direction: row; 
         }
         
         .iconDemo .step {
            flex-grow: 1;
            line-height: 0.5; 
         }
         
         .iconDemo .material-icons.md-18 {
            font-size: 18px; 
         }
         
         .iconDemo .material-icons.md-24 {
            font-size: 24px; 
         }
         
         .iconDemo .material-icons.md-36 {
            font-size: 36px; 
         }
         
         .iconDemo .material-icons.md-48 {
            font-size: 48px; 
         }
         
         .iconDemo .material-icons.md-dark {
            color: rgba(0, 0, 0, 0.54); 
         }
         
         .iconDemo .material-icons.md-dark.md-inactive {
            color: rgba(0, 0, 0, 0.26); 
         }
         
         .iconDemo .material-icons.md-light {
            color: white; 
         }
         
         .iconDemo .material-icons.md-light.md-inactive {
            color: rgba(255, 255, 255, 0.3); 
         }
      </style>
      
      <script language = "javascript">
         angular
            .module('firstApplication', ['ngMaterial'])
            .controller('iconController', iconController);

         function iconController ($scope) {
            var iconData = [
               {name: 'accessibility'  , color: "#777" },
               {name: 'question_answer', color: "rgb(89, 226, 168)" },
               {name: 'backup'         , color: "#A00" },
               {name: 'email'          , color: "#00A" }
            ];
            
            $scope.fonts = [].concat(iconData);            
            $scope.sizes = [
               {size:"md-18",padding:0},
               {size:"md-24",padding:2},
               {size:"md-36",padding:6},
               {size:"md-48",padding:10}
            ];
         }                 
      </script>     	  
   </head>
   
   <body ng-app = "firstApplication"> 
      <div id = "iconContainer" class = "iconDemo"
         ng-controller = "iconController as ctrl" ng-cloak>
         <div class = "glyph" ng-repeat = "font in fonts" layout = "row">
            <div ng-repeat = "it in sizes" flex layout-align = "center center"
               style = "text-align: center;" layout = "column">
            <div flex></div>
               <div class = "preview-glyphs">
                  <md-icon ng-style = "{color: font.color}"
                     aria-label = "{{ font.name }}"
                     class = "material-icons step"
                     ng-class = "it.size">
                     {{ font.name }}
                  </md-icon>
               </div>
            </div>
         </div>
      </div>
   </body>
</html>

結果

驗證結果。

廣告

© . All rights reserved.