Material(包括Material Icon)在Angular2中的使用详解


Posted in Javascript onFebruary 11, 2018

1.引入material npm包

npm install @angular/material @angular/cdk

2.新建一个ebiz-material.module.ts方便管理引入material的module

ng g module ebiz-material -app=ebiz-ui

3.在app的根module中引入ebiz-material.module.ts

import { EbizMaterialModule } from './ebiz-material/ebiz-material.module';
@NgModule({
  imports: [..., EbizMaterialModule],
  declarations: [
    ...
  ],
  schemas: [CUSTOM_ELEMENTS_SCHEMA]
})

使用material组件

1.首先在ebiz-material.module.ts中引入material组件的module,例如我们要用到checkbox

(https://material.angular.io/components/checkbox/overview),那就引入MatCheckboxModule,引入之后再exports。

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { MatCheckboxModule } from '@angular/material';
@NgModule({
 imports: [CommonModule, MatCheckboxModule],
 declarations: [],
 exports: [ MatCheckboxModule ]
})
export class EbizMaterialModule { }

2.在html文件中使用组件

<mat-checkbox [(ngModel)]="checked">Check me!</mat-checkbox>

使用material-icon

1.引入material-icon

npm install material-design-icons

如果下载失败(我是install失败了,也不去管它了,能用就行),可以到 github上 下载下来,然后取出iconfont文件夹放到自己的项目目录下,并且在需要用到图标的css(scss)中引入,一般情况我们会放在style.scss中全局去使用。

@font-face {
 font-family: 'Material Icons';
 font-style: normal;
 font-weight: 400;
 src: url(assets/iconfont/MaterialIcons-Regular.eot); /* For IE6-8 */
 src: local('Material Icons'),
    local('MaterialIcons-Regular'),
    url(assets/iconfont/MaterialIcons-Regular.woff2) format('woff2'),
    url(assets/iconfont/MaterialIcons-Regular.woff) format('woff'),
    url(assets/iconfont/MaterialIcons-Regular.ttf) format('truetype');
}
/* meterial icon的设定 */
.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';
}

2.在html的适当位置放上图标

<i class="material-icon">iconName<i>

使用material内置theme以及自定义theme

1.material中的组件会根据theme的不同,会有不一样的样式呈现,但是这些样式的不同只局限于material组件内部,不会影响自定义组件的样式。

2.styles.css文件名改为styles.scss,并且在angular-cli.json文件中修改为

"styles": [
    "styles.scss"
   ],

3.在style.scss文件中引入material预建主题(总共4个)

@import '~@angular/material/prebuilt-themes/deeppurple-amber.css'; 
 @import '~@angular/material/prebuilt-themes/indigo-pink.css'; 
 @import '~@angular/material/prebuilt-themes/pink-bluegrey.css'; 
 @import '~@angular/material/prebuilt-themes/purple-green.css';

4.如果觉得这些主题不适合,可以自定义主题,在styles.scss同级目录下新建一个theme.scss,并写上自定义主题的内容(https://material.angular.io/guide/theming)

@import '~@angular/material/theming';
@include mat-core();
$my-app-primary: mat-palette($mat-blue); 
$my-app-accent: mat-palette($mat-teal, A200, A100, A400); 
$my-app-warn: mat-palette($mat-red); 
$my-app-theme: mat-light-theme($my-app-primary, $my-app-accent, $my-app-warn);
@include angular-material-theme($my-app-theme);

5.在步骤3中用到了一些颜色,例如$mat-blue,可以参考这里

6.如果想要对某个组件进行主题特制,可以参考这里

7.在styles.scss中引入自定义主题

@import './theme';

总结

以上所述是小编给大家介绍的Material(包括Material Icon)在Angular2中的使用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery LigerUI 插件介绍及使用之ligerDrag和ligerResizable示例代码打包
Apr 06 Javascript
JavaScript如何从listbox里同时删除多个项目
Oct 12 Javascript
给应用部分的js代码设定一个统一的入口
Jun 15 Javascript
JavaScript中判断整字类型最简洁的实现方法
Nov 08 Javascript
jQuery实现淡入淡出二级下拉导航菜单的方法
Aug 28 Javascript
浅谈JS中json数据的处理
Jun 30 Javascript
js继承实现方法详解
Dec 16 Javascript
js捆绑TypeScript声明文件的方法教程
Apr 13 Javascript
electron中使用bootstrap的示例代码
Nov 06 Javascript
react项目如何使用iconfont的方法步骤
Mar 13 Javascript
基于JS实现web端录音与播放功能
Apr 17 Javascript
vue中利用mqtt服务端实现即时通讯的步骤记录
Jul 01 Vue.js
原生JS实现循环Nodelist Dom列表的4种方式示例
Feb 11 #Javascript
Vue实现点击后文字变色切换方法
Feb 11 #Javascript
Vue-cli中为单独页面设置背景色的实现方法
Feb 11 #Javascript
vue刷新和tab切换实例
Feb 11 #Javascript
详解如何在vue项目中引入elementUI组件
Feb 11 #Javascript
vue-router配合ElementUI实现导航的实例
Feb 11 #Javascript
vue页面跳转后返回原页面初始位置方法
Feb 11 #Javascript
You might like
深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)
2013/02/06 PHP
使用PHP求两个文件的相对路径
2013/06/20 PHP
深入file_get_contents函数抓取内容失败的原因分析
2013/06/25 PHP
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
2013/06/29 PHP
php调用nginx的mod_zip模块打包ZIP文件
2014/06/11 PHP
采用memcache在web集群中实现session的同步会话
2014/07/05 PHP
Symfony页面的基本创建实例详解
2015/01/26 PHP
php+ajax无刷新上传图片的实现方法
2016/12/06 PHP
laravel中的fillable和guarded属性详解
2019/10/23 PHP
DOM下的节点属性和操作小结
2009/05/14 Javascript
javascript中的if语句使用介绍
2013/11/20 Javascript
javascript事件冒泡和事件捕获详解
2015/05/26 Javascript
js判断某个字符出现的次数的简单实例
2016/06/03 Javascript
使用jQuery Ajax 请求webservice来实现更简练的Ajax
2016/08/04 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
2017/03/09 Javascript
vue+django实现一对一聊天功能的实例代码
2019/07/17 Javascript
微信小程序自定义扫码功能界面的实现代码
2020/07/02 Javascript
一个简单的python程序实例(通讯录)
2013/11/29 Python
浅谈python中截取字符函数strip,lstrip,rstrip
2015/07/17 Python
10分钟用python搭建一个超好用的CMDB系统
2019/07/17 Python
Python安装及Pycharm安装使用教程图解
2019/09/20 Python
使用python和pygame制作挡板弹球游戏
2019/12/03 Python
Python实现代码块儿折叠
2020/04/15 Python
解决python父线程关闭后子线程不关闭问题
2020/04/25 Python
英国电信商店:BT Shop
2019/12/17 全球购物
迷你西餐厅创业计划书范文
2013/12/31 职场文书
护士见习期自我鉴定
2014/02/08 职场文书
外语系大学生自荐信范文
2014/03/01 职场文书
幼儿教师寄语集锦
2014/04/03 职场文书
《恐龙》教学反思
2014/04/27 职场文书
鸟的天堂导游词
2015/01/31 职场文书
团员年度个人总结
2015/02/26 职场文书
护士求职自荐信范文
2015/03/04 职场文书
乡镇保密工作承诺书
2015/05/04 职场文书
2015年反腐倡廉工作总结
2015/05/14 职场文书
单位领导婚礼致辞
2015/07/28 职场文书