demo:

默认是这样的:

当我们点击更多按钮后,会以CSS3动画的方式展开剩余所有文字信息,如下动图:

下面我们看下关键的CSS代码,这个.active是如何自身无样式的:

.box {
max-height: 80px;
transition: max-height .25s;
overflow: hidden;
}
.box.active {
max-height: 200px;
}
.active > .more {
display: none;
}

  

more.onclick = function () {
box.className = box.className + ' active';
};

  

可以看到,当我们点击按钮后,盒子变高,以及更多元素隐藏,全部都是通过和.active发生关系后发生的,而不是.active自己的样式。例如,我们盒子实现的200px以内任意高度的动画效果,是通过.box.active组合类名触发的,

用中文解释就是.box元素同时有.active状态的时候,样式如何如何…

同样,.active > .more表示,当我的爸爸状态为.active的时候,我隐藏。

实现了真正意义上的样式和行为分离!

优点:

.active本质上扮演的角色不是类名样式,而是一个标识符!

  1. 省了很多想命名的脑细胞

    妈妈再也不要担心有些单词不知道怎么翻译啦~~

  2. CSS和JS代码可读性更强了

    一旦在CSS或JS中看到'.active',大家都知道,页面这块内容要变形了;

  3. JS代码量更少了

    例如,我们在全局,或者顶层局部定义这么一个变量:

    var ACTIVE = 'active';

    则,由于我们所有的交互都只要这一个类名,因此,当我们JS压缩的时候,其压缩率要高很多,也更好维护。加入说页面中有10个UI交互效果,原先是10个不能压缩的字符串,现在变成了1个,代码量自然要少。

  4. 类名压缩成为了可能

来自:http://www.zhangxinxu.com/wordpress/2016/10/classname-active-checked-web-ux-develop/

最新文章

  1. xp搭建IIS出现HTTP 500错误-2147467259 (0x80004005)
  2. Form表单中的get和post的区别
  3. 去除Jsp页面空白行
  4. c#实现清理回收站垃圾
  5. Win10的分辨率问题
  6. 『转载』C# winform 中dataGridView的重绘(进度条,虚线,单元格合并等)
  7. 【转】Dancing Links题集
  8. windows下安装和配置Weka
  9. 使用导入导出进行备份和恢复OCR(10g)
  10. SQL Server调优系列进阶篇 - 如何索引调优
  11. hdu 3642 Get The Treasury (三维的扫描线)
  12. 矩形嵌套(LIS)
  13. 弹飞DZY(思维,打表,还没过全,先放着)
  14. 走进javascript——类型
  15. window7 安装sass和compass
  16. 从PRISM开始学WPF(九)交互Interaction?
  17. indexer_worker.go
  18. python range的用法小题
  19. Async/Await是这样简化JavaScript代码的
  20. Mysql Binlog三种格式详细介绍

热门文章

  1. 【面试 springMVC】【第四篇】springMVC的一些问题
  2. 在Ubuntu 10.10下安装JDK配置Eclipse及Tomcat
  3. NHibernate之旅(7):初探NHibernate中的并发控制
  4. JAVA设计模式之 原型模式【Prototype Pattern】
  5. 【微信支付】分享一个失败的案例 跨域405(Method Not Allowed)问题 关于IM的一些思考与实践 基于WebSocketSharp 的IM 简单实现 【css3】旋转倒计时 【Html5】-- 塔台管制 H5情景意识 --飞机 谈谈转行
  6. mybatis 动态curd
  7. Python开发【2.3 模块】
  8. 【iOS系列】-自定义Modar动画
  9. 在C语言中使用libiconv进行编码转换的示例
  10. 转载-STM32片上FLASH内存映射、页面大小、寄存器映射