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 相关文章推荐
javascript 密码强弱度检测万能插件
Feb 25 Javascript
ie支持function.bind()方法实现代码
Dec 27 Javascript
JavaScript地图拖动功能SpryMap的简单实现
Jul 17 Javascript
Javascript中克隆一个数组的实现代码
Dec 06 Javascript
一个网页标题title的闪动提示效果实现思路
Mar 22 Javascript
Windows系统下安装Node.js的步骤图文详解
Nov 15 Javascript
vue.js学习之UI组件开发教程
Jul 03 Javascript
jQuery实现可编辑表格并生成json结果(实例代码)
Jul 19 jQuery
解决iview打包时UglifyJs报错的问题
Mar 07 Javascript
react实现点击选中的li高亮的示例代码
May 24 Javascript
浅谈Vue.js组件(二)
Apr 09 Javascript
vue路由守卫及路由守卫无限循环问题详析
Sep 05 Javascript
原生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
星际中的相关伤害
2020/03/04 星际争霸
PHP使用CURL模拟登录的方法
2015/07/08 PHP
PHP设计模式之数据访问对象模式(DAO)原理与用法实例分析
2019/12/12 PHP
学习YUI.Ext 第六天--关于树TreePanel(Part 1)
2007/03/10 Javascript
在服务端(Page.Write)调用自定义的JS方法详解
2013/08/09 Javascript
ZeroClipboard插件实现多浏览器复制功能(支持firefox、chrome、ie6)
2014/08/30 Javascript
JavaScript参数个数可变的函数举例说明
2014/10/10 Javascript
js控制div弹出层实现方法
2015/05/11 Javascript
浅谈javascript获取元素transform参数
2015/07/24 Javascript
JS中使用FormData上传文件、图片的方法
2016/08/07 Javascript
Angular2 (RC4) 路由与导航详解
2016/09/21 Javascript
javascript动画之磁性吸附效果篇
2016/12/09 Javascript
详谈js遍历集合(Array,Map,Set)
2017/04/06 Javascript
extjs简介_动力节点Java学院整理
2017/07/17 Javascript
bootstrap fileinput插件实现预览上传照片功能
2018/01/23 Javascript
关于Layui Table隐藏列问题
2019/09/16 Javascript
vue-dplayer 视频播放器实例代码
2019/11/08 Javascript
Vue中正确使用Element-UI组件的方法实例
2020/10/13 Javascript
在react-antd中弹出层form内容传递给父组件的操作
2020/10/24 Javascript
[16:21]教你分分钟做大人:圣堂刺客
2014/12/03 DOTA
使用Python进行AES加密和解密的示例代码
2018/02/02 Python
tensorflow创建变量以及根据名称查找变量
2018/03/10 Python
在Python中使用turtle绘制多个同心圆示例
2019/11/23 Python
python中栈的原理及实现方法示例
2019/11/27 Python
Python for i in range ()用法详解
2020/09/18 Python
CSS3 仿微信聊天小气泡实例代码
2017/04/05 HTML / CSS
数控技术与应用毕业生自荐信
2013/09/24 职场文书
计算机大学生的自我评价
2013/10/15 职场文书
财务担保书范文
2014/04/02 职场文书
高职教师先进事迹材料
2014/08/24 职场文书
检察院对照“四风”认真查找问题落实整改措施
2014/09/26 职场文书
教师查摆问题自查报告
2014/10/11 职场文书
保证书格式
2015/01/16 职场文书
卫生院义诊活动总结
2015/05/07 职场文书
工作简历的自我评价
2019/05/16 职场文书
《月歌。》宣布制作10周年纪念剧场版《RABBITS KINGDOM THE MOVIE》
2022/04/02 日漫