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的ajax()函数传值中文乱码解决方法介绍
Nov 08 Javascript
Javascript基础教程之定义和调用函数
Jan 18 Javascript
javascript实现移动端上的触屏拖拽功能
Mar 04 Javascript
jQuery实现摸拟alert提示框
May 22 Javascript
第一次接触神奇的Bootstrap导航条
Aug 09 Javascript
JS实现的DIV块来回滚动效果示例
Feb 07 Javascript
AngularJS读取JSON及XML文件的方法示例
May 25 Javascript
JavaScript实现正则去除a标签并保留内容的方法【测试可用】
Jul 18 Javascript
react-native使用leanclound消息推送的方法
Aug 06 Javascript
LayerClose弹窗关闭刷新方法
Aug 17 Javascript
JavaScript模板引擎应用场景及实现原理详解
Dec 14 Javascript
Vue export import 导入导出的多种方式与区别介绍
Feb 12 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 全角转半角实现代码
2010/05/16 PHP
php使用Jpgraph绘制复杂X-Y坐标图的方法
2015/06/10 PHP
PHP实现权限管理功能示例
2017/09/22 PHP
JavaScript 判断判断某个对象是Object还是一个Array
2010/01/28 Javascript
js 获取Listbox选择的值的代码
2010/04/15 Javascript
jQuery表格插件datatables用法汇总
2016/03/29 Javascript
JavaScript 消息框效果【实现代码】
2016/04/27 Javascript
jQuery插件ajaxfileupload.js实现上传文件
2020/10/23 Javascript
js时间比较 js计算时间差的简单实现方法
2016/08/26 Javascript
jquery 判断是否支持Placeholder属性的方法
2017/02/07 Javascript
JavaScript实现网页头部进度条刷新
2017/04/16 Javascript
Vue学习笔记进阶篇之过渡状态详解
2017/07/14 Javascript
通过jquery toggleClass()属性制作文章段落更改背景颜色
2018/05/21 jQuery
原生JS实现逼真的图片3D旋转效果详解
2019/02/16 Javascript
Python内置模块ConfigParser实现配置读写功能的方法
2018/02/12 Python
Pandas 对Dataframe结构排序的实现方法
2018/04/10 Python
python使用tornado实现登录和登出
2018/07/28 Python
在Pycharm中将pyinstaller加入External Tools的方法
2019/01/16 Python
钉钉群自定义机器人消息Python封装的实例
2019/02/20 Python
举例讲解Python常用模块
2019/03/08 Python
Django自定义用户登录认证示例代码
2019/06/30 Python
在Django model中设置多个字段联合唯一约束的实例
2019/07/17 Python
Python生成个性签名图片获取GUI过程解析
2019/12/16 Python
tensorflow指定GPU与动态分配GPU memory设置
2020/02/03 Python
关于Kotlin中SAM转换的那些事
2020/09/15 Python
canvas如何绘制钟表的方法
2017/12/13 HTML / CSS
奥地利智能家居和智能生活网上商店:tink.at
2019/10/07 全球购物
应届生求职简历的自我评价怎么写
2013/10/23 职场文书
《蜗牛》教学反思
2014/02/18 职场文书
关于读书的演讲稿
2014/05/07 职场文书
消防宣传口号
2014/06/16 职场文书
党风廉正建设责任书
2015/01/29 职场文书
审美与表现自我评价
2015/03/09 职场文书
2015年大学学生会工作总结
2015/05/13 职场文书
Node实现搜索框进行模糊查询
2021/06/28 Javascript
Java实现字符串转为驼峰格式的方法详解
2022/07/07 Java/Android