zoukankan      html  css  js  c++  java
  • 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条同样适用。


  • 相关阅读:
    solr源码解读(转)
    solr安装配置
    HTML转义字符
    JAVA:在0-99间产生100个不重复的随机数
    JS中的$符号
    使用Emacs敲出UML,PlantUML快速指南
    operator 安装
    package handler
    shell 条件判断if
    libvirtError: internal error: No more available PCI slots
  • 原文地址:https://www.cnblogs.com/macoco/p/8479789.html
Copyright © 2011-2022 走看看