avalon 的HTML规范
由于avalon以绑定属性实现对DOM的选择与操作,页面的美观与调试就变得至关重要。参照boostrap的HTML规范,制定如下
属性排列的规范
- class (class, id, name与浏览器的原生选择器相关,因此需靠前 )
- id,name (这个定义的顺序直接影响到元素的attributes中的特性节点的排列顺序,id具有独占性,慎用)
- data-* 这涉及到内部dataset对象的生成,并且表示组件的data-button-*属性应排在只表示缓存的data-*属性前面
- ms-* 没有属性值的排在有属性值的前面, 依长度排列
- type title for hre f src style等原生属性, 依长度排列
- 用户自定义属性, 依长度排列
<div class="ui-dialog ui-widget ui-widget-content ui-corner-all ui-front"
data-drag-handle="handle"
data-drag-before-start="beforeStart"
ms-draggable
ms-visible="toggle"
ms-css-width="width"
ms-css-height="height"
tabindex="-1"
style="position: absolute;"
>
<div class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix" >
<span class="ui-dialog-title" >{{title|html}}</span>
<button class="ui-dialog-titlebar-close"
data-button-text="false"
data-button-icon-primary="ui-icon-closethick"
ms-widget="button"
ms-click="close"
type="button"
>close</button>
</div>
</div>
注,我们应该尽可能少用ID,因为较新的浏览器中,它们都学IE5那样直接把ID映射成一个全局变量,可能会引发各种奇怪问题。单页应用的设计原则就是组件化,在这里面,不应有页面的观念,只应有组件的观念。在组件系统里首先应该避免的就是全局变量,id不幸就是这方面的典型。
空格与换行的处理
标签名如有属性,第一个属性必须与它同行,第二个属性换行,位置于第一个属性对齐,其他属性照办
属性格式的规范
属性名必须小写, 属性值必须用双引号括起,对于表单元素的布尔属性(如checked, selected, disabled)直接忽略属性值
闭合的规则
自闭包标签必须以“/>”结束,其他的格式都应为“<xxx>ffffffffffffffff</xxx>”
avalon 的HTML规范的更多相关文章
- 区块链学习7:超级账本项目Hyperledger与Fabric以及二者的关系
☞ ░ 前往老猿Python博文目录 ░ 一.超级账本(hyperledger) 超级账本(hyperledger)是Linux基金会于2015年发起的推进区块链数字技术和交易验证的开源项目,成员包括 ...
- MVVM大比拼之avalon.js源码精析
简介 avalon是国内 司徒正美 写的MVVM框架,相比同类框架它的特点是: 使用 observe 模式,性能高. 将原始对象用object.defineProperty重写,不需要用户像用knoc ...
- 迷你MVVM框架avalon在兼容旧式IE做的努力
很多时候,写代码就像砌砖头,只要我们不关心盖楼的原因.建筑的原理.土木工程基础和工程经验,就算我们砌了100栋高楼,我们也就只是一个砌砖工人,永远也成为不了一个工程师,更别说建筑师了.而那些包工头也只 ...
- 轻量级前端MVVM框架avalon - 控制器
引子: 最近工作挺忙,avalon只能断断续续的写下去了,大概看了下angular的源码,看到小一半就比较难坚持了,是块硬骨头,慢慢啃吧 不过angular的的文档中用词还是很优雅: HTML编译器 ...
- avalon框架,简单的MVVM
今天我又要挑战一次一个高大上的公司了 但是看着jd有点忧伤了要求如下 基本要求:1.熟悉 HTML / CSS / JS 并有良好的代码风格:2.理解 Web 标准,语义化,可以解决主流浏览器及不同版 ...
- MVVM框架avalon在兼容旧式IE
迷你MVVM框架avalon在兼容旧式IE做的努力 当前标签: avalon 共3页: 1 2 3 下一页 迷你MVVM框架avalon在兼容旧式IE做的努力 司徒正美 2014-03-13 11: ...
- 迷你MVVM框架 avalonjs 学习教程1、引入avalon
avalon是国内最强大的MVVM框架,没有之一,虽然淘宝KISSY团队也搞了两个MVVM框架,但都无疾而终.其他的MVVM框架都没几个.也只有外国人与像我这样闲的架构师才有时间钻研这东西.我很早之前 ...
- 关于 avalon总线理解(整理)
1,一个基于Avalon接口的系统会包含很多功能模块,这些功能模块就是Avalon存储器映射外设,通常简称Avalon外设.所谓存储器映射外设是指外设和存储器使用相同的总线来寻址,并且CPU使用访问存 ...
- iOS代码规范(OC和Swift)
下面说下iOS的代码规范问题,如果大家觉得还不错,可以直接用到项目中,有不同意见 可以在下面讨论下. 相信很多人工作中最烦的就是代码不规范,命名不规范,曾经见过一个VC里有3个按钮被命名为button ...
随机推荐
- WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWP/Chrome)
WPF 自定义窗口样式有多种方式,不过基本核心实现都是在修改 Win32 窗口样式.然而,Windows 上的应用就应该有 Windows 应用的样子嘛,在保证自定义的同时也能与其他窗口样式保持一致当 ...
- hadoop入门手册1:hadoop【2.7.1】【多节点】集群配置【必知配置知识1】
问题导读 1.说说你对集群配置的认识?2.集群配置的配置项你了解多少?3.下面内容让你对集群的配置有了什么新的认识? 目的 目的1:这个文档描述了如何安装配置hadoop集群,从几个节点到上千节点.为 ...
- 《DSP using MATLAB 》示例Example6.3
代码: C0 = 0; B1 = [2 4; 3 1]; A1 = [1 1 0.9; 1 0.4 -0.4]; B2 = [0.5 0.7; 1.5 2.5; 0.8 1]; A2 = [1 -1 ...
- 《selenium2 python 自动化测试实战》(9)——切换窗口
有时候我们点击按钮后页面会跳转到新的窗口,我们需要到新的窗口中去进行接下来的操作,这时候就需要切换窗口的操作,我们根据句柄(handle)来操作窗口之间的切换,看代码: # coding: utf-8 ...
- static类和no static类的区别
1.static类,只能有静态成员,不能被实例.静态的东西在内存中只有一份,调用速度会快,但是相对费内存. 2.在另外一个类内部定义的类,此类的实例化不希望依赖外部类的实例化,此时可以定义为静态类(即 ...
- Spring注入方式及用到的注解
注入方式: 把DAO实现类注入到service实现类中,把service的接口(注意不要是service的实现类)注入到action中,注 入时不要new 这个注入的类,因为spring会自动注入,如 ...
- Mongodb简单介绍安装
具体详细内容,请查阅 Mongodb官方文档 一.简单介绍 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. M ...
- Markdown语法简单介绍
Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式. 一.标题 # 这是标题一 ## 这是标题二 ### 这是标题三 #### 这是标题 ...
- 简单安装MySQL(RPM方式)
本次测试使用一台ip为192.168.2.21的虚拟机 下边的步骤虽然多,但是跟着命令或者复制粘贴命令即可完成操作,并无难点 1.安装准备 MySQL-server-5.6.35-1.linux_gl ...
- 【转载】chrome控制台中看见的cookie属性详解
在chrome控制台中的resources选项卡中可以看到cookie的信息. 一个域名下面可能存在着很多个cookie对象. name字段为一个cookie的名称. value字段为一个cookie ...