从头开始搭建组件库
今天完成arain-icon、arain-button、arain-button-group,主要是梳理流程。
-
为每个页面新建main.vue和index.js,main.vue创建组件,index.js导出组件。
-
icon:
<svg class="arain-icon" aria-hidden="true"> <use :xlink:href="'#'+icon" /> </svg> -
button type(Strig):primary、success、info、error、warning plain(Boolean):是否朴素按钮 round(Boolean):是否圆角 circle(Boolean):是否圆形 icon(String):图标 iconPosition(String):图标在左或右 loading(Boolean):是否加载状态
-
button-group 多个button,修改头尾圆角,除第一个左移边框距离
问题
- loading图标不转
- 修改图标颜色
今日新知识
加载图标
<svg class="arain-icon" aria-hidden="true">
<use :xlink:href="'#'+icon" />
</svg>
##所有伪类和微元素
| 选择器 | 示例 | 示例说明 |
|---|---|---|
| :checked | input:checked | 选择所有选中的表单元素 |
| :disabled | input:disabled | 选择所有禁用的表单元素 |
| :empty | p:empty | 选择所有没有子元素的p元素 |
| :enabled | input:enabled | 选择所有启用的表单元素 |
| :first-of-type | p:first-of-type | 选择的每个 p 元素是其父元素的第一个 p 元素 |
| :in-range | input:in-range | 选择元素指定范围内的值 |
| :invalid | input:invalid | 选择所有无效的元素 |
| :last-child | p:last-child | 选择所有p元素的最后一个子元素 |
| :last-of-type | p:last-of-type | 选择每个p元素是其母元素的最后一个p元素 |
| :not(selector) | :not(p) | 选择所有p以外的元素 |
| :nth-child(n) | p:nth-child(2) | 选择所有 p 元素的父元素的第二个子元素 |
| :nth-last-child(n) | p:nth-last-child(2) | 选择所有p元素倒数的第二个子元素 |
| :nth-last-of-type(n) | p:nth-last-of-type(2) | 选择所有p元素倒数的第二个为p的子元素 |
| :nth-of-type(n) | p:nth-of-type(2) | 选择所有p元素第二个为p的子元素 |
| :only-of-type | p:only-of-type | 选择所有仅有一个子元素为p的元素 |
| :only-child | p:only-child | 选择所有仅有一个子元素的p元素 |
| :optional | input:optional | 选择没有"required"的元素属性 |
| :out-of-range | input:out-of-range | 选择指定范围以外的值的元素属性 |
| :read-only | input:read-only | 选择只读属性的元素属性 |
| :read-write | input:read-write | 选择没有只读属性的元素属性 |
| :required | input:required | 选择有"required"属性指定的元素属性 |
| :root | root | 选择文档的根元素 |
| :target | #news:target | 选择当前活动#news元素(点击URL包含锚的名字) |
| :valid | input:valid | 选择所有有效值的属性 |
| :link | a:link | 选择所有未访问链接 |
| :visited | a:visited | 选择所有访问过的链接 |
| :active | a:active | 选择正在活动链接 |
| :hover | a:hover | 把鼠标放在链接上的状态 |
| :focus | input:focus | 选择元素输入后具有焦点 |
| :first-letter | p:first-letter | 选择每个 元素的第一个字母 |
| :first-line | p:first-line | 选择每个 元素的第一行 |
| :first-child | p:first-child | 选择器匹配属于任意元素的第一个子元素的 元素 |
| :before | p:before | 在每个 元素之前插入内容 |
| :after | p:after | 在每个 元素之后插入内容 |
| :lang(language) | p:lang(it) | 为 元素的lang属性选择一个开始值 |
align-content属性
作用:设置同一列子元素在Y轴的对齐方式
| 属性值 | 描述 |
|---|---|
| flex-start | 排列在当前列的最上方 |
| flex-end | 排列在当前列的最下方 |
| center | 排列在当前列的中间位置 |
| space-between | 间距相等排列,上下不留白 |
| space-around | 间距相等排列,上下留白等于间距的一半 |
justify-content属性
作用:设置同一行子元素在X轴的对齐方式
| 属性值 | 描述 |
|---|---|
| flex-start | 排列在当前行的最左边 |
| flex-end | 排列在当前行的最右边 |
| center | 排列在当前行的中间位置 |
| space-between | 间距相等排列,两边不留白 |
| space-around | 间距相等排列,两边留白等于间距的一半 |
align-items属性
作用:设置同一行子元素在Y轴的对齐方式
| 属性值 | 描述 |
|---|---|
| flex-start | 排列在当前行的最上方 |
| flex-end | 排列在当前行的最下方 |
| center | 排列在当前行的中间位置 |
| stretch | 当子元素没有设置高度或为auto,将占满整个容器的高度 |
| baseline | 以子元素第一行文字的基线对齐 |
cursor
作用:鼠标指针放在一个元素边界范围内时所用的光标形状
| 值 | 描述 |
|---|---|
| url | 需使用的自定义光标的 URL。注释:请在此列表的末端始终定义一种普通的光标,以防没有由 URL 定义的可用光标。 |
| default | 默认光标(通常是一个箭头) |
| auto | 默认。浏览器设置的光标。 |
| crosshair | 光标呈现为十字线。 |
| pointer | 光标呈现为指示链接的指针(一只手) |
| move | 此光标指示某对象可被移动。 |
| e-resize | 此光标指示矩形框的边缘可被向右(东)移动。 |
| ne-resize | 此光标指示矩形框的边缘可被向上及向右移动(北/东)。 |
| nw-resize | 此光标指示矩形框的边缘可被向上及向左移动(北/西)。 |
| n-resize | 此光标指示矩形框的边缘可被向上(北)移动。 |
| se-resize | 此光标指示矩形框的边缘可被向下及向右移动(南/东)。 |
| sw-resize | 此光标指示矩形框的边缘可被向下及向左移动(南/西)。 |
| s-resize | 此光标指示矩形框的边缘可被向下移动(南)。 |
| w-resize | 此光标指示矩形框的边缘可被向左移动(西)。 |
| text | 此光标指示文本。 |
| wait | 此光标指示程序正忙(通常是一只表或沙漏)。 |
| help | 此光标指示可用的帮助(通常是一个问号或一个气球)。 |
outline
设置元素周围的轮廓
outline:#00FF00 dotted thick;
可以设置的属性分别是(按顺序):outline-color, outline-style, outline-width
outline-style
| 值 | 描述 |
|---|---|
| none | 默认。定义无轮廓。 |
| dotted | 定义点状的轮廓。 |
| dashed | 定义虚线轮廓。 |
| solid | 定义实线轮廓。 |
| double | 定义双线轮廓。双线的宽度等同于 outline-width 的值。 |
| groove | 定义 3D 凹槽轮廓。此效果取决于 outline-color 值。 |
| ridge | 定义 3D 凸槽轮廓。此效果取决于 outline-color 值。 |
| inset | 定义 3D 凹边轮廓。此效果取决于 outline-color 值。 |
| outset | 定义 3D 凸边轮廓。此效果取决于 outline-color 值。 |
| inherit | 规定应该从父元素继承轮廓样式的设置。 |
order: icon:svg