<style>
.myColor{color:red;font-size:13px}
.yourColor{color:green;font-size:34px}
</style>
<div data-bind="style: { color:'red', fontWeight:'bold' }">...</div>
<!--分别写不同的CSS样式,当条件满足是就调用当前的css样式,其他的样式被忽略-->
<div id="test" data-bind="css:{ 'myColor' :t()<0,'yourColor':t()>0}"> This is css Test</div>
<script>
var viewModel = {
t:ko.observable(100)
}
viewModel.t(-100);
setTimeout(function(){viewModel.t(10);},1000);

ko.applyBindings(viewModel);
</script>

  • 目的

    css绑定是添加或删除一个或多个CSS class到DOM元素上。 非常有用,比如当数字变成负数时高亮显示。(注:如果你不想应用CSS class而是想引用style属性的话,请参考style绑定。)

     

    例子

    <div data-bind="css: { profitWarning: currentProfit() < 0 }">
    Profit Information
    </div> <script type="text/javascript">
    var viewModel = {
    currentProfit: ko.observable(150000)
    // Positive value, so initially we don't apply the "profitWarning" class
    }; viewModel.currentProfit(-50);
    // Causes the "profitWarning" class to be applied
    </script>

    效果就是当currentProfit 小于0的时候,添加profitWarning CSS class到元素上,如果大于0则删除这个CSS class。

     

    参数

    主参数

    该参数是一个JavaScript对象,属性是你的CSS class名称,值是比较用的true或false,用来决定是否应该使用这个CSS class。

    你可以一次设置多个CSS class。例如,如果你的view model有一个叫isServre的属性,

    <div data-bind="css: { profitWarning: currentProfit() < 0, majorHighlight: isSevere }">

    非布尔值会被解析成布尔值。例如, 0和null被解析成false,21和非null对象被解析成true。

    如果参数是监控属性observable的,那随着值的变化将会自动添加或者删除该元素上的CSS class。如果不是,那CSS class将会只添加或者删除一次并且以后不在更新。

    你可以使用任何JavaScript表达式或函数作为参数。KO将用它的执行结果来决定是否应用或删除CSS class。

    其它参数

     

    注:应用的CSS class的名字不是合法的JavaScript变量命名

    如果你想使用my-class class,你不能写成这样:

    <div data-bind="css: { my-class: someValue }">...</div>

    … 因为my-class不是一个合法的命名。解决方案是:在my-class两边加引号作为一个字符串使用。这是一个合法的JavaScript 对象 文字(从JSON技术规格说明来说,你任何时候都应该这样使用,虽然不是必须的)。例如,

    <div data-bind="css: { 'my-class': someValue }">...</div>

     

    依赖性

    除KO核心类库外,无依赖。

  • ko内置的基础绑定之一 。
  • 用于控制DOM元素的class属性(因此个人认为叫做class binding更直接一些)。
  • 会根据所绑定的bool值(或者可以返回bool值的js表达式),给元素 移除/添加 对应的class名称
  • 如果与observable或者computed属性绑定,则会产生双向绑定效果。

控制文本和外观------CSS Binding(CSS类名绑定)的更多相关文章

  1. 控制文本和外观------Attr Binding(attr属性绑定)

    Attr Binding(attr属性绑定) 目的 attr 绑定提供了一种方式可以设置DOM元素的任何属性值.你可以设置img的src属性,连接的href属性.使用绑定,当模型属性改变的时候,它会自 ...

  2. 控制文本和外观------Style Binding(Style属性绑定)

    目的 style绑定是添加或删除一个或多个DOM元素上的style值.比如当数字变成负数时高亮显示,或者根据数字显示对应宽度的Bar.(注:如果你不是应用style值而是应用CSS class的话,请 ...

  3. KnockoutJS(4)-控制文本和外观绑定

    控制文本和外观绑定 依赖关系:除了Knockout核心库之外,无依赖关系. 类别 目的 Visible绑定 Visible绑定通过绑定一个值来确定DOM元素显示或隐藏 Text绑定 Text绑定主要是 ...

  4. knockoutJS学习笔记05:控制文本和外观绑定

    测试数据: function Person(name,age){ var self = this; self.name = ko.observable(name); self.age = ko.obs ...

  5. CSS控制文本超出指定宽度后用省略号代替,CSS控制文本不换行

    CSS控制文本超出指定宽度后用省略号代替,CSS控制文本不换行. 一般的文字截断(适用于内联与块): .text-overflow {     display:block;/*内联对象需加*/     ...

  6. 复习-css控制文本字体属性

    css控制文本字体属性 font-family:字体系列,如”serif“”sans-serif“ font-size:尺寸 font-style:字体样式,如“normal,italic(斜体).o ...

  7. css 样式控制文本过长实现省略号

    css 样式控制文本过长实现省略号 .topicTitle{ text-overflow: ellipsis; max-width: 75%; overflow: hidden; white-spac ...

  8. 问题:css 自动换行;结果:CSS控制文本自动换行

    CSS控制文本自动换行 CSS控制文本自动换行,阅读CSS控制文本自动换行,1.你定死表格的宽度,即给表格一个宽度值(是 数值,不是百分比) 2.强制不换行div{//white-space:不换行; ...

  9. css文本样式及控制文本的大小写

    常用文本样式如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

随机推荐

  1. error: unknown field 'ioctl' specified in initializer

    error message: 原因: 从2.6.36开始,file_operations结构发生了重大变化 具体看  xx../include/linux/fs.h定义: 取消了原先的 int (*i ...

  2. [安卓]softap

    http://www.cnblogs.com/javawebsoa/archive/2013/05/29/3106758.html

  3. 关于高并发的aotomic

    AtomicInteger线程安全的根源,熟悉并发的同学一定知道在java中处理并发主要有两种方式: 1,synchronized关键字,这个大家应当都各种面试和笔试中经常遇到. 2,volatile ...

  4. Java基础毕向东day02

    1. 常量 null 等特殊 2.标识符 数字-字母-下划线,数字不能开头 3.二进制 1> 二进制计算方法. 2>常用二进制. 1        1      0       0   1 ...

  5. SVG 2D入门4 - 笔画与填充

    前面我们重点都在总结各类形状,文本和图片,接下来,我们还是和讨论canvas一样,总结一下颜色处理,也就是填充和边框效果:你会发现这里的内容与canvas基本上是一致的.这些属性既可以以属性的形式写在 ...

  6. UE正则表达式查找和替换(将【,;】)替换为换行

  7. 解决:Android编译源码根目录下/system/vold后,通过push命令将编译生成的vold文件push至system/bin下无法正常开机

    这段时间由于工作需要,在对android根目录下/system/vold进行修改编译的时候,在通过adb命令将vold文件push至/system/bin目录下,adb reboot重启手机却发现一直 ...

  8. int和char的相同和不同。

    int和char在存储量上有不同而且在编程的时候,这样才是正确的,如果这样的话,这是一个区别. 第二:这个和上面的道理应该是差不多的.输出97   98. 总的来说,int和char都是一个定义量器的 ...

  9. 5、网页制作Dreamweaver(JS的初步运用)

    JAVASCRIPT *放在头部也可以读取(最先读取头部) 表单提交时会自动刷新网页,最好关掉 写法: 1.输出 <script> document.write("hello w ...

  10. HDU2222 (AC自动机)

    AC自动机模板题. 被卡内存了 死活A不掉.. AC自动机参考教程: http://www.cppblog.com/menjitianya/archive/2014/07/10/207604.html ...