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 相关文章推荐
用脚本调用样式的几种方法
Dec 09 Javascript
JavaScript面向对象之体会[总结]
Nov 13 Javascript
原生javascript获取元素样式属性值的方法
Dec 25 Javascript
JQuery $.each遍历JavaScript数组对象实例
Sep 01 Javascript
浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用
Nov 23 Javascript
深入理解JavaScript系列(30):设计模式之外观模式详解
Mar 03 Javascript
使用AngularJS中的SCE来防止XSS攻击的方法
Jun 18 Javascript
ECharts仪表盘实例代码(附源码下载)
Feb 18 Javascript
vue之数据交互实例代码
Jun 20 Javascript
vue中前进刷新、后退缓存用户浏览数据和浏览位置的实例讲解
Sep 21 Javascript
通过实例解析json与jsonp原理及使用方法
Sep 27 Javascript
Vue中用JSON实现刷新界面不影响倒计时
Oct 26 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控制用户的浏览器--ob*函数的使用说明
2007/03/16 PHP
php删除文件夹及其文件夹下所有文件的函数代码
2013/01/23 PHP
php获取域名的google收录示例
2014/03/24 PHP
php计算当前程序执行时间示例
2014/04/24 PHP
php通过ajax实现双击table修改内容
2014/04/28 PHP
PHP中使用socket方式GET、POST数据实例
2015/04/02 PHP
php版微信自定义回复功能示例
2016/12/05 PHP
phpcms实现验证码替换及phpcms实现全站搜索功能教程详解
2017/12/13 PHP
PHP延迟静态绑定使用方法实例解析
2020/09/05 PHP
csdn 论坛技术区平均给分功能
2009/11/07 Javascript
js限制文本框为整数和货币的函数代码
2010/10/13 Javascript
jquery调用wcf并展示出数据的方法
2011/07/07 Javascript
jquery基础教程之deferred对象使用方法
2014/01/22 Javascript
jquery map方法使用示例
2014/04/23 Javascript
js函数调用的方式
2014/05/06 Javascript
js限制checkbox选中个数以限制六个为例
2014/07/15 Javascript
js实现浏览器窗口大小被改变时触发事件的方法
2015/02/02 Javascript
基于JavaScript实现一定时间后去执行一个函数
2015/12/14 Javascript
jquery+css3实现会动的小圆圈效果
2016/01/27 Javascript
实现高性能JavaScript之执行与加载
2016/01/30 Javascript
关于JS中match() 和 exec() 返回值和属性的测试
2016/03/21 Javascript
基于jquery插件实现拖拽删除图片功能
2020/08/27 Javascript
JS图片预加载插件详解
2017/06/21 Javascript
用JS编写一个函数,返回数组中重复出现过的元素(实例)
2017/09/14 Javascript
Vuex持久化插件(vuex-persistedstate)解决刷新数据消失的问题
2019/04/16 Javascript
JS实现可切换图片的幻灯切换效果示例
2019/05/24 Javascript
js 判断当前时间是否处于某个一个时间段内
2019/09/19 Javascript
Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)
2020/08/28 Javascript
[06:20]2015国际邀请赛第三日top10
2015/08/08 DOTA
详解python中自定义超时异常的几种方法
2019/07/29 Python
Gweniss格温妮丝女包官网:英国纯手工制造潮流包包品牌
2018/02/07 全球购物
高二物理教学反思
2014/02/08 职场文书
2014年社区党建工作汇报材料
2014/11/02 职场文书
2016春季运动会前导词
2015/11/25 职场文书
导游词之京东大峡谷旅游区
2019/10/29 职场文书
python用tkinter开发的扫雷游戏
2021/06/01 Python