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 相关文章推荐
pjblog修改技巧汇总
Mar 12 Javascript
jQuery学习5 jQuery事件模型
Feb 07 Javascript
JavaScript页面刷新与弹出窗口问题的解决方法
Mar 02 Javascript
jquery mobile页面跳转后样式丢失js失效的解决方法
Sep 06 Javascript
jQuery中outerWidth()方法用法实例
Jan 19 Javascript
BootStrap智能表单实战系列(八)表单配置json详解
Jun 13 Javascript
Linux CentOS系统下安装node.js与express的方法
Apr 01 Javascript
基于代数方程库Algebra.js解二元一次方程功能示例
Jun 09 Javascript
bootstrap treeview 扩展addNode方法动态添加子节点的方法
Nov 21 Javascript
微信公众号开发之微信支付代码记录的实现
Oct 16 Javascript
Vue3项目打包后部署到服务器 请求不到后台接口解决方法
Feb 06 Javascript
微信小程序实现modal弹出框遮罩层组件(可带文本框)
Dec 20 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手机号码归属地查询代码(API接口/mysql)
2012/09/04 PHP
php中smarty区域循环的方法
2015/06/11 PHP
是 WordPress 让 PHP 更流行了 而不是框架
2016/02/03 PHP
php实现文章评论系统
2019/02/18 PHP
不常用但很实用的PHP预定义变量分析
2019/06/25 PHP
js 字符串转换成数字的三种方法
2013/03/23 Javascript
为Javascript中的String对象添加去除左右空格的方法(示例代码)
2013/11/30 Javascript
jQuery Migrate 1.1.0 Released 注意事项
2014/06/14 Javascript
深入理解JS中的Function.prototype.bind()方法
2016/10/11 Javascript
jquery动态添加文本并获取值的方法
2016/10/12 Javascript
JavaScript 用fetch 实现异步下载文件功能
2017/07/21 Javascript
JavaScript变量类型以及变量作用域详解
2017/08/14 Javascript
JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法
2017/09/21 Javascript
Koa2微信公众号开发之本地开发调试环境搭建
2018/05/16 Javascript
vue和webpack安装命令详解
2018/06/15 Javascript
jquery 通过ajax请求获取后台数据显示在表格上的方法
2018/08/08 jQuery
Layui 动态禁止select下拉的例子
2019/09/03 Javascript
微信公众号服务器验证Token步骤图解
2019/12/30 Javascript
深入分析jQuery.one() 函数
2020/06/03 jQuery
vue+element实现图片上传及裁剪功能
2020/06/29 Javascript
对Django url的几种使用方式详解
2019/08/06 Python
django框架单表操作之增删改实例分析
2019/12/16 Python
40个你可能不知道的Python技巧附代码
2020/01/29 Python
Python ADF 单位根检验 如何查看结果的实现
2020/06/03 Python
在tensorflow以及keras安装目录查询操作(windows下)
2020/06/19 Python
python xlsxwriter模块的使用
2020/12/24 Python
灵活运用CSS3特性绘制简易版围棋效果
2016/09/28 HTML / CSS
HTML5通过navigator.mediaDevices.getUserMedia调用手机摄像头问题
2020/04/27 HTML / CSS
Big Green Smile德国网上商店:提供各种天然产品
2018/05/23 全球购物
Stuarts London美国/加拿大:世界领先的独立男装零售商之一
2019/03/18 全球购物
一个J2EE项目团队的主要人员组成是什么
2012/06/04 面试题
西安交大自主招生自荐信
2014/01/27 职场文书
软件专业毕业生个人自我鉴定
2014/04/17 职场文书
学雷锋月活动总结
2014/04/25 职场文书
开发一个封装iframe的vue组件
2021/03/29 Vue.js
深入理解MySQL中MVCC与BufferPool缓存机制
2022/05/25 MySQL