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

  你用Angular吗?

一.介绍

  如何只改动最简单的css代码,呈现完全不一样的视图效果。

第一种:最基本的设置:

  图1 代码


图2 界面运行效果图

平常,想给一个label或者p等标签添加样式,我们就是这样操作,在Angular中也是一样的。

现在,如果我想要将字体换成红色呢,首先想到的就是去修改.label里的color属性值,可如果样式表是封装的或者外部引用的,不方便修改呢?

这时候就要用到ElementRef 和Renderer2了。可以去Angular 官网里搜索哟。

  renderer.class 图

我们可以这样用:

  

  label.html


  label.ts

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


    修改效果图

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

我们可以获取到元素的节点进行操作?

  label.ts

获取元素节点,还是用上面的elementref。 如果要改变所有的,For循环皆可以啦。

可是,这样做又有问题了?如果想不同的label不同字体颜色怎么办呢?

当然Angular也提供了方法呀? ngStyle和ngClass可以用呀!

 ngStyle

[ngStyle]="{color:'  '}"  和[style.color]是一样的意思。

你的label想变成什么颜色,你就给我传那个值进来,0就是green......

这种适用于只需要修改少量属性的标签。

如果你需要修改颜色,字体大小,间距....这种方式显然太繁琐,这时候ngclass就来了。

 ngclass

注意ngClass后面的字样。label为什么没有用单引号呢,而后面的text-primary却有呢?

1.label是一个变量,我们的样式是可以传参的。

也就是你的html标签不需要改动,需要什么样式就在ts离传入即可。ngClass也可以利用这个特性去修改。

其实这几种用的地方也挺多的,不过得根据实际需求去采用不同形式。

欢迎来找我交流Angular 或前端技术哟。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,697评论 1 92
  • CSS全称为“层叠样式表 (Cascading Style Sheets)”,它主要是用于定义HTML内容在浏览器...
    百作不死的学习阅读 4,982评论 0 7
  • 1.块级元素和行内元素 块级(block-level)元素;行内(内联、inline-level)元素。 块元素的...
    饥人谷_小侯阅读 6,308评论 1 4
  • 本课来自http://www.imooc.com/learn/9请不要用作商业用途。 HTML5 HTML介绍 H...
    PYLON阅读 8,628评论 0 5
  • 转载请声明 原文链接地址 关注公众号获取更多资讯 第一部分 HTML 第一章 职业规划和前景 职业方向规划定位...
    前端进阶之旅阅读 16,751评论 32 459

友情链接更多精彩内容