Angular 4 设置组件样式的几种方式

一.介绍
如何只改动最简单的css代码,呈现完全不一样的视图效果。
第一种:最基本的设置:


平常,想给一个label或者p等标签添加样式,我们就是这样操作,在Angular中也是一样的。
现在,如果我想要将字体换成红色呢,首先想到的就是去修改.label里的color属性值,可如果样式表是封装的或者外部引用的,不方便修改呢?
这时候就要用到ElementRef 和Renderer2了。可以去Angular 官网里搜索哟。

我们可以这样用:


当然ElementRef和renderer2都引用自@angular/core库里面的。 至于ViewChild 和ngAfterViewInit()可以自行去了解。

当然,你说这样修改的弊端有没有呢?肯定是有的,因为,this.el.nativeElement获取的是当前元素,如果用*ngFor生成了一系列的label的话,它只会给你修改第一个label的。那有没有其他的办法可以修改呢。当然也是有的!
我们可以获取到元素的节点进行操作?

获取元素节点,还是用上面的elementref。 如果要改变所有的,For循环皆可以啦。
可是,这样做又有问题了?如果想不同的label不同字体颜色怎么办呢?
当然Angular也提供了方法呀? ngStyle和ngClass可以用呀!

[ngStyle]="{color:' '}" 和[style.color]是一样的意思。
你的label想变成什么颜色,你就给我传那个值进来,0就是green......
这种适用于只需要修改少量属性的标签。
如果你需要修改颜色,字体大小,间距....这种方式显然太繁琐,这时候ngclass就来了。

注意ngClass后面的字样。label为什么没有用单引号呢,而后面的text-primary却有呢?
1.label是一个变量,我们的样式是可以传参的。

也就是你的html标签不需要改动,需要什么样式就在ts离传入即可。ngClass也可以利用这个特性去修改。
其实这几种用的地方也挺多的,不过得根据实际需求去采用不同形式。
欢迎来找我交流Angular 或前端技术哟。
Angular 4 设置组件样式的几种方式的更多相关文章
- JS设置CSS样式的几种方式
用JS来动态设置CSS样式,常见的有以下几种 1. 直接设置style的属性 某些情况用这个设置 !important值无效 如果属性有'-'号,就写成驼峰的形式(如textAlign) 如果想保 ...
- JS设置CSS样式的几种方式【转】
用JS来动态设置CSS样式,常见的有以下几种 1. 直接设置style的属性 某些情况用这个设置 !important值无效 如果属性有'-'号,就写成驼峰的形式(如textAlign) 如果想保 ...
- 原生js更改css样式的两种方式
下面我给大家介绍的是原生js更改CSS样式的两种方式: 1通过在javascript代码中的node.style.cssText="css表达式1:css表达式2:css表达式3 &quo ...
- 【javascript】原生js更改css样式的两种方式
下面我给大家介绍的是原生js更改CSS样式的两种方式: 1通过在javascript代码中的node.style.cssText="css表达式1:css表达式2:css表达式3 &quo ...
- javascript总结40:DOM中操作样式的两种方式
1 DOM中操作样式的两种方式 1 通过元素的style属性 注意: 通过style属性设置样式时,css中要写单位的属性,在js代码中也要加单位 //html <div id="bo ...
- 我给女朋友讲编程CSS系列(1) –添加CSS样式的3种方式及样式表的优先权
如果说,原生态就是美,那么,我们就没有必要穿衣打扮. 网页是什么? 说白了,网页就是一堆[html标签]有序的搭配,让[CSS属性值]整整容,请[Javascript语言]处理一下事件. 一个人的整容 ...
- HTML 引用Css样式的四种方式
不才,只知道HTML引用CSS样式有四种方式,内部引用和外部引用各两种,因为老是忘记细节,记下了随时翻阅亦可方便如我般的初学者 内部引用方式1: 直接在标签内用 style 引用,如: <div ...
- HTML中设置背景图的两种方式
HTML中设置背景图的两种方式 1.background background:url(images/search.png) no-repeat top; 2.background-image ...
- vue组件通信的几种方式
最近用vue开发项目,记录一下vue组件间通信几种方式 第一种,父子组件通信 一.父组件向子组件传值 1.创建子组件,在src/components/文件夹下新建一个Child.vue 2.Child ...
随机推荐
- android inline hook
最近终于沉下心来对着书把hook跟注入方面的代码敲了一遍,打算写几个博客把它们记录下来. 第一次介绍一下我感觉难度最大的inline hook,实现代码参考了腾讯GAD的游戏安全入门. inline ...
- Oracle PL/SQL Developer集成TFS进行团队脚本文件版本管理
对于传统的使用关系型数据库的大型软件产品,后台数据库的持续开发和维护可能会产生大量的脚本文件,针对这些脚本文件应该怎样比较方便的进行版本管理,以及如何快捷的在团队之间进行权限等协作管理呢?不同的数据库 ...
- python pandas stack和unstack函数
在用pandas进行数据重排时,经常用到stack和unstack两个函数.stack的意思是堆叠,堆积,unstack即"不要堆叠",我对两个函数是这样理解和区分的. 常见的数据 ...
- swift内存管理中的引用计数
在swift中,每一个对象都有生命周期,当生命周期结束会调用deinit()函数进行释放内存空间. 观察这一段代码: class Person{ var name: String var pet: P ...
- Sp_Lock
SP_LOCK 其显示信息为: Spid:进程ID号(要发现哪些用户和该spid相连,你就要执行存储过程sp_who) Dbid:数据库ID号(可以在主数据库中的sysdatabases表格中找到它) ...
- SEO的基本概念 和 提交SITEMAP到搜索引擎
SEO的基本概念 SEO的基本概念 :我们接触的SEO主要就是做搜索引擎的优化,让搜索引擎更好地收录 我们的网站,不管是首页还是内页,都能有很好的收录和排名.那么我们经常用到的SEO的语句是什么呢?小 ...
- windows系统下使用cd命令
如果要切换到D:\Program Files目录下,大多数人会想当然的在命令行窗口输入 cd D:\Program Files回车. 如下所示: 发现并没有切换到D:\Program Files. 正 ...
- 8、ABPZero系列教程之拼多多卖家工具 添加手机注册登录功能
现在网站基本都用手机注册,很少用邮箱注册,本篇内容比较多,代码我会尽量加备注,有些操作需要连续添加几个文件才不报错,如果VS显示错误,请继续后续步骤. 前面已经有一篇文章讲到集成短信发送模块:http ...
- ElasticSearch 集群监控
要监控哪些 ElasticSearch metrics? Elasticsearch 提供了大量的 Metric,可以帮助您检测到问题的迹象,在遇到节点不可用.out-of-memory.long g ...
- 字典 (dict) 的增删改查及其他方法
一.字典 1.字典简介: 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无 ...