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 相关文章推荐
ASP中用Join和Array,可以加快字符连接速度的代码
Aug 22 Javascript
jQuery验证Checkbox是否选中的代码 推荐
Sep 04 Javascript
JavaScript实现点击按钮后变灰避免多次重复提交
Jul 15 Javascript
JavaScript Math.ceil() 函数使用介绍
Dec 11 Javascript
js获取域名的方法
Jan 27 Javascript
jQuery实现点击图片翻页展示效果的方法
Feb 16 Javascript
基于jQuery实现点击最后一行实现行自增效果的表格
Jan 12 Javascript
EsLint入门学习教程
Feb 17 Javascript
基于layer.js实现收货地址弹框选择然后返回相应的地址信息
May 26 Javascript
Bootstrap Table 在指定列中添加下拉框控件并获取所选值
Jul 31 Javascript
element ui里dialog关闭后清除验证条件方法
Feb 26 Javascript
Vue+Bootstrap收藏(点赞)功能逻辑与具体实现
Oct 22 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 遍历XP文件夹下所有文件
2008/11/27 PHP
php中$this-&amp;gt;含义分析
2009/11/29 PHP
在IIS7.0下面配置PHP 5.3.2运行环境的方法
2010/04/13 PHP
百度站点地图(百度sitemap)生成方法分享
2014/01/09 PHP
PHP给文字内容中的关键字进行套红处理
2016/04/12 PHP
thinkPHP5.0框架URL访问方法详解
2017/03/18 PHP
PHP生成随机密码4种方法及性能对比
2020/12/11 PHP
JavaScript中令你抓狂的魔术变量
2006/11/30 Javascript
拖动一个HTML元素
2006/12/22 Javascript
JQUERY THICKBOX弹出层插件
2008/08/30 Javascript
javascript URL编码和解码使用说明
2010/04/12 Javascript
实现点击列表弹出列表索引的两种方式
2013/03/08 Javascript
jQuery插件制作之参数用法实例分析
2015/06/01 Javascript
使用Javascript写的2048小游戏
2015/11/25 Javascript
jQuery实现验证年龄简单思路
2016/02/24 Javascript
详解React-Todos入门例子
2016/11/08 Javascript
微信小程序开发入门基础教程
2017/04/19 Javascript
Vue 列表上下过渡效果的实例代码
2019/06/25 Javascript
elementui之el-tebs浏览器卡死的问题和使用报错未注册问题
2019/07/06 Javascript
解决vue 子组件修改父组件传来的props值报错问题
2019/11/09 Javascript
python虚拟环境 virtualenv的简单使用
2020/01/21 Javascript
Vue检测屏幕变化来改变不同的charts样式实例
2020/10/26 Javascript
详解Python import方法引入模块的实例
2017/08/02 Python
python+opencv轮廓检测代码解析
2018/01/05 Python
基于python中theano库的线性回归
2018/08/31 Python
Python自动化之数据驱动让你的脚本简洁10倍【推荐】
2019/06/04 Python
docker-py 用Python调用Docker接口的方法
2019/08/30 Python
利用简洁的图片预加载组件提升html5移动页面的用户体验
2016/03/11 HTML / CSS
HearthSong官网:儿童户外玩具、儿童益智玩具
2017/10/16 全球购物
敬老院院长事迹材料
2014/05/21 职场文书
学校开除通知书
2015/04/25 职场文书
2015年远程教育工作总结
2015/05/20 职场文书
详解MindSpore自定义模型损失函数
2021/06/30 Python
NGINX 权限控制文件预览和下载的实现原理
2022/01/18 Servers
关于Mybatis中SQL节点的深入解析
2022/03/19 Java/Android
volatile保证可见性及重排序方法
2022/08/05 Java/Android