木的树 阅读(176) 评论(0)

dijit.form.DropDownButton

  dijit的button中除了ComboButton使用table布局外,其他的button都是用span嵌套布局,下图中可看一下button的主要结构,以DropDownButton为例:

  

  下面就是介绍几个比较重要的class

  .dijitDropDownButton、.dijitButton、.dijitComboButton、.dijitToggleButton这几个类都影响各类型button的最外层整体效果,主要设置button的margin以及保证button中text的垂直居中。

  .dijitButtonNode,凡是“具有按钮效果的地方”就有这个class,比如dijit.form.Select、dijit.form.NumberSpinner;该class一方面是用来设置动画效果,一方面在dijit.css中设置全局效果,在dijit.form.*Button中对button的整体样式效果做出了设置,如:border、padding、background-color、color(字体颜色)

  .dijitIcon*(Edit、Save等)负责显示图标,background-imge是相同的主要就是改变background-position

  .dijitButtonText设置margin与text-align来影响button中的文本

  .dijitArrowButtonInner上一篇讲过,设置右侧的向下箭头

  claro/form/Button.less中line64-93这是不同状态ArrowButton中的inner,104-149行中设置不同状态下.dijitButtonNode的background-color、box-shadow来显示效果,151-165主要设置comboButton中的显示效果

 

dijit.form.RadioButton、dijit.form.CheckBox

  这个dijit都是通过div+label来布局,以RadioButton为例看一下其结构

  

  这两个dijit都是通过改变不同状态下左侧div的背景图片来显示效果,.dijitRadio、.dijitCheckBox这两个class设置了左侧div的background-image、width、height、margin、padding;然后就是在不同状态的class中设置background-position来背景图片