上一章我们讲了element的布局和容器,这章咱讲图标,按钮,链接
图标
element的图标是一种矢量图标,通过css的url引入相应字体图标库ttf和woff文件
当font-family被定义为element-icons时,将会引入相关的字体图标库的样式
当标签的class存在前缀为el-icon-的属性时,将会添加如下图的属性,具体字体有el-icon-xxx决定
按钮
ButtonGroup
代码很简单,主要是将button隔离起来
css是通过IFC隔离样式,清除浮动,基准线居中,对里面的button进行浮动生成BFC,通过相对定位使z-index属性生效,可以生成层叠上下文并对button的样式进行修改
Button
Button主要是调整样式,样式在theme-chalk中已经定义了,当button定义了不同的类名,就会生成不同的样式
script:
- inject:注入了elForm,elFormItem
- props: 文档写的很明白了
- computed: 按钮的大小优先级是props的size => 表单FormItem定义的size => 最后是全局设置的size
按钮是否禁用优先级根据props的disabled => 表单disabled
methods:
- handleClick:点击按钮触发,执行$emit('click', evt),通知父组件
Link
Link主要也是调试样式,通过v-bind="$attrs"让开发者可以在组件上设置<a/>标签原生的属性
对外层div设置行内FFC,通过flex来实现垂直居中,设置相对定位是因为Link的下划线是通过伪元素绝对定位到下方,需要控制在组件中
script:
- props:
- methods: handleClick是a标签点击事件的回调,当disabled为false并且href不为空,则触发$emit('click', event),通知父组件