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的extend和fn.extend的使用说明
Jan 09 Javascript
jquery.fileEveryWhere.js 一个跨浏览器的file显示插件
Oct 24 Javascript
Jquery 选中表格一列并对表格排序实现原理
Dec 15 Javascript
早该知道的7个JavaScript技巧
Mar 27 Javascript
javascript在当前窗口关闭前检测窗口是否关闭
Sep 29 Javascript
EasyUI实现二级页面的内容勾选的方法
Mar 01 Javascript
全系IE支持Bootstrap的解决方法
Oct 19 Javascript
js倒计时简单实现方法
Dec 17 Javascript
最好用的Bootstrap fileinput.js文件上传组件
Dec 12 Javascript
js addDqmForPP给标签内属性值加上双引号的函数
Dec 24 Javascript
vue slots 组件的组合/分发实例
Sep 06 Javascript
关于javascript中的promise的用法和注意事项(推荐)
Jan 15 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
php中的观察者模式简单实例
2015/01/20 PHP
php实现QQ小程序发送模板消息功能
2019/09/18 PHP
laravel框架之数据库查出来的对象实现转化为数组
2019/10/23 PHP
CSS心形加载的动画源码的实现
2021/03/09 HTML / CSS
js下通过getList函数实现分页效果的代码
2010/09/17 Javascript
nodejs获取本机内网和外网ip地址的实现代码
2014/06/01 NodeJs
jquery实现在光标位置插入内容的方法
2015/02/05 Javascript
在HTML中插入JavaScript代码的示例
2015/06/03 Javascript
jQuery实现的超酷苹果风格图标滑出菜单效果代码
2015/09/16 Javascript
JS中对象与字符串的互相转换详解
2016/05/20 Javascript
手机端点击图片放大特效PhotoSwipe.js插件实现
2016/08/24 Javascript
angular bootstrap timepicker TypeError提示怎么办
2017/06/13 Javascript
JS原生带小白点轮播图实例讲解
2017/07/22 Javascript
详解如何使用 vue-cli 开发多页应用
2017/12/16 Javascript
vue vuex vue-rouert后台项目——权限路由(适合初学)
2017/12/29 Javascript
vue项目中应用ueditor自定义上传按钮功能
2018/04/27 Javascript
微信小程序用户信息encryptedData详解
2018/08/24 Javascript
Javascript摸拟自由落体与上抛运动原理与实现方法详解
2020/04/08 Javascript
python实现telnet客户端的方法
2015/04/15 Python
Python Selenium Cookie 绕过验证码实现登录示例代码
2018/04/10 Python
详解Django rest_framework实现RESTful API
2018/05/24 Python
CentOS 7下安装Python3.6 及遇到的问题小结
2018/11/08 Python
django自带调试服务器的使用详解
2019/08/29 Python
基于Python实现剪切板实时监控方法解析
2019/09/11 Python
Python自动发送和收取邮件的方法
2020/08/12 Python
屈臣氏马来西亚官网:Watsons马来西亚
2019/06/15 全球购物
英文版餐饮业求职信
2013/10/18 职场文书
资料员的岗位职责
2013/11/20 职场文书
施工安全汇报材料
2014/08/17 职场文书
个人事迹材料范文
2014/12/29 职场文书
幼儿教师辞职信范文
2015/03/02 职场文书
2015年机关后勤工作总结
2015/05/26 职场文书
新郎父母婚礼致辞
2015/07/27 职场文书
企业年会祝酒词
2015/08/11 职场文书
《海上日出》教学反思
2016/02/23 职场文书
Python编写车票订购系统 Python实现快递收费系统
2022/08/14 Python