Angular2 ngclass与ngstyle的使用

今日遇到ngClass与ngStyle的使用问题。

ngClass与ngStyle都是动态修改html样式的内置命令。

ngClass

官方文档的说明的格式:

https://www.angular.cn/api/common/NgClass

1 <some-element [ngClass]="'first second'">...</some-element>
2 <some-element [ngClass]="['first', 'second']">...</some-element>
3 <some-element [ngClass]="{'first': true, 'second': true, 'third': false}">...</some-element>
4 <some-element [ngClass]="stringExp|arrayExp|objExp">...</some-element>
5 <some-element [ngClass]="{'class1 class2 class3' : true}">...</some-element>

总结:

1.[ngClass]="'css类1 css类2'"
字符串以空格分割形式。
2.[ngClass]="['css类1','css类2']"
数组形式。
3.[ngClass]="{'css类1':true, 'css类2':true}"
key/value形式
4.[ngClass]="{'css类1 css类2':true}"
多类key/value形式
5.[ngClass]="stringExp|arrayExp|objExp"
表达式形式。

还有一种方式就是在组件中定一个对象 :

 

currentClasses: {};
setCurrentClasses() {
  // CSS classes: added/removed per current state of component properties
  this.currentClasses =  {
    'saveable': this.canSave,
    'modified': !this.isUnchanged,
    'special':  this.isSpecial
  };
}

把ngClass属性绑定到currentClasses,根据它来设置此元素的CSS类:

<div [ngClass]="currentClasses">This div is initially saveable, unchanged, and special</div>

 

持续更新:

ngStyle

贴上官方文档:https://www.angular.cn/api/common/NgStyle

<div [ngStyle]="{'background-color':'green'}"></<div>
<div [ngStyle]="{'background-color':  disabled == true  ?  'green' : 'red' }"></<div>
<div [ngStyle]="{'background-color':'green' , 'color':'red' }"></<div>

总结:

1.[ngStyle]="{'css属性':'属性值'}"
单个key/value形式
2.[ngStyle]="{'css属性1':条件表达式 ? 'true时 属性值1':'false 时 属性值2'}"
单个属性值设置,使用三元表达式进行选择
3.[ngStyle]="{'css属性1':'属性值1', 'css属性2':'属性值2'}"
多个key/value形式

注意:
1.如果在原生html标签中使用[style]={'属性1':'值1',......},会强制覆盖原本标签中style的样式
2.ngStyle的优先级低于【style.属性值】的写法
3.在递归中使用对象属性类型绑定到原生标签的style时,注意事项中1,2条同样适用。


转载于:https://www.cnblogs.com/macoco/p/8479789.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值