Button按钮组件
AX-BTN自定义组件表示一个按钮,按钮是网页最基本的一个元素,所以本按钮组件支持多种子元素,包括前缀、后缀、图标、图片等;支持多种size尺寸、多种结构风格、多种主题颜色风格。
前言
有两种方式使用按钮,一是使用原生按钮,即input
(type=submit/reset)和button
,二是使用ax-btn
自定义标签。原生按钮已经被本框架充分美化,所以我们主要探讨ax-btn
的使用方法。
原生按钮
表单重常用的submit
和reset
按钮,以及单独的button
标签均已经被美化。
- 输出
- HTML
自定义按钮内容
定义按钮文本内容有两个方法:
- 将内容写在label属性上;
- 将内容写在标签内部;如果要再次修改文本则应该从label属性上进行;
- 输出
- HTML
-
按钮 -
按钮宽度
按钮默认没有具体宽度,如果需要指定宽度按钮可使用以下属性。
- width=1:宽度=高度的定宽按钮,无padding;
- width=2:宽度=高度*2的定宽按钮,无padding;
- width=3:宽度=高度*3的定宽按钮;
- width=[4~10]:依次类推;
- width=neat:宽度=input宽度的定宽按钮;
- width=full:宽度=100%的全宽定宽按钮;
- 输出
- HTML
-
默认 x4 neat full -
按钮颜色
默认按钮为白底黑子按钮,如果需要使用彩色按钮,可使用theme
属性:
- theme=prim:主色
- theme=error:红色
- theme=succ:绿色
- theme=info:蓝色
- theme=issue:橙色
- theme=warn:黄色
- theme=text:黑色
- theme=brief:中灰色
- theme=ignore:浅灰色
- 输出
- HTML
-
prim text -
按钮尺寸
按钮有四种尺寸,尺寸不同则高度不同,字号和间隙也有差别,通过size
属性设置尺寸。
- size=xs:最小按钮,高2.2rem;较少用
- size=sm:小按钮,高2.8rem;
- size=md:中型按钮,高3.8rem,默认;
- size=lg:大按钮,高4.8rem;
对应的,表单域也有size=sm/md/lg尺寸。
- 输出
- HTML
-
xs sm md 默认 lg -
按钮轮廓
按钮有三种轮廓,默认带有小圆角轮廓,可使用shape
属性设置按钮轮廓样式:
- shape=square:方形轮廓按钮
- shape=round:圆形轮廓按钮
- shape=radius:小圆角按钮,默认
- 输出
- HTML
-
square round radius -
按钮造型
按钮有三种造型,默认为黑子白底造型,可使用type
属性设置按钮的其他造型:
- type=seal:镂空线条造型;
- type=plain:纯文本按钮造型,无底色也无边框,但是占位同普通按钮一样;
- 输出
- HTML
-
seal plain -
A链接
组件wrap容器的nodeName
默认是SPAN
标签,如果使用了href
属性,那么将转为A
标签,此时可同时设置target
、rel
和download
属性,跟设置普通A标签一样。
A标签默认能focus聚焦,不需要给组件设置tabindex
属性了。
- 输出
- HTML
-
A标签 -
SEO
因为组件的内容是通过组件内部js重新组装属性值而来,所以可能存在对SEO
的不友好性,所以本组件支持一种SEO写法,即将a
标签以及a标签的href
、target
、rel
和download
属性写在组件标签内。
- 输出
- HTML
可聚焦
按钮默认不能成为focus
焦点,Tab按键也无法聚焦,如果需要focus
状态可追加tab
属性,tab为0
或1
均可。
如果有href
值,wrap自动转为A标签,那么便不需要使用tab
属性了,A标签自身有focus
状态。
- 输出
- HTML
-
可聚焦,Tab无效 可聚焦,Tab有效 可聚焦1,Tab有效 可聚焦2,Tab有效 -
Attributes属性
名称 | 可选值 | 默认值 | 说明 |
---|---|---|---|
type | 'seal'/'plain'/'solid' | 'solid' | 按钮类型,默认普通实心按钮 |
theme | 'prim'/'error'/'succ'/'info'/'warn'/'issue'/'text'/'breif'/'ignore' | undefined | 按钮的颜色主体,默认没有颜色 |
label | '' | '' | 按钮的文本 |
href | ''/undefined | undefined | 跳转链接,如果启用,相当于A链接 |
target | 同A标签的target属性 | '_blank' | 跳转方式,有href属性才有效 |
rel | 同A标签的rel属性 | undefined | 按钮关联内容,有href属性才有效 |
download | 同A标签的download属性 | undefined | 按钮下载文件的名称,有href属性才有效 |
tab | '0'/'1'/undefined | undefined | tabindex值(有:focus状态),如果有href值(是a链接)便不需要设置tab, |
size | 'xs'/'sm'/'md'/'lg' | 'md' | 按钮的整体尺寸,xs=1.8rem,sm=2.2rem,md=3.8rem,lg=4.8rem ,默认md尺寸 |
width | '1'/'2'/'3'~'10'/'neat'/'full'/undefined | undefined | 按钮的宽度,x3表示width=height*3,x1和x2没有padding,neat表示与input宽度相同,full表示100%宽度 |
shape | radius/square/round | 'radius' | 按钮的外围轮廓形状,默认为小圆角边框 |
check | 'ing'/'ed'/undefined | undefined | 按钮加载或检测状态,ing表示正在进行,ed表示完成 |
icon | 图标的class/undefined | undefined | 按钮的前置图标class样式类 |
tail | 图标的class/undefined | undefined | 按钮的后置图标class样式类 |
mean | 'update'/'remove'/'expand'/'more'/undefined | undefined | 按钮的意指,将在按钮尾部自动添加意指图标 |
disk | ''/undefined | undefined | 圆形图片地址 |
cube | ''/undefined | undefined | 方形图片地址 |
image | ''/undefined | undefined | 普通图片地址 |
badge | ''/undefined | undefined | 信息数量提示 |
tips | ''/ undefined | undefined | 按钮提示(tooltip实例) |
disabled | ''/undefined | undefined | 是否禁用按钮 |
shaded | ''/undefined | undefined | 是否使用按钮阴影 |
grad | ''/undefined | undefined | 是否使用渐变按钮 |
Methods方法
有组件通用的内置方法:
- set:设置组件属性,支持一个参数即被设置的属性值键值对
{key,value}
或其数组 - reset:重置组件属性,无参数
- clear:清除属性和值,无参数
基本用法:CompElem.reset();
Events事件
有组件通用的事件:
- connected:组件连接成功,无参数
- disconnected:组件断开连接,无参数
- adopted:组件被转移,无参数
- set:设置了属性,支持一个参数即设置的值
- cleared:清除了属性,无参数
- reset:重置了属性,无参数
基本用法:CompElem.on('connected',()=>{console.log('connected')});