搭建组件库1

188 阅读5分钟

从头开始搭建组件库

今天完成arain-icon、arain-button、arain-button-group,主要是梳理流程。

  1. 为每个页面新建main.vue和index.js,main.vue创建组件,index.js导出组件。

  2. icon:

        <svg class="arain-icon" aria-hidden="true">
          <use :xlink:href="'#'+icon" /> 
        </svg>
    
  3. button type(Strig):primary、success、info、error、warning plain(Boolean):是否朴素按钮 round(Boolean):是否圆角 circle(Boolean):是否圆形 icon(String):图标 iconPosition(String):图标在左或右 loading(Boolean):是否加载状态

  4. button-group 多个button,修改头尾圆角,除第一个左移边框距离

问题

  1. loading图标不转
  2. 修改图标颜色

今日新知识

加载图标

      <svg class="arain-icon" aria-hidden="true">
        <use :xlink:href="'#'+icon" /> 
      </svg>

##所有伪类和微元素

选择器示例示例说明
:checkedinput:checked选择所有选中的表单元素
:disabledinput:disabled选择所有禁用的表单元素
:emptyp:empty选择所有没有子元素的p元素
:enabledinput:enabled选择所有启用的表单元素
:first-of-typep:first-of-type选择的每个 p 元素是其父元素的第一个 p 元素
:in-rangeinput:in-range选择元素指定范围内的值
:invalidinput:invalid选择所有无效的元素
:last-childp:last-child选择所有p元素的最后一个子元素
:last-of-typep: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-typep:only-of-type选择所有仅有一个子元素为p的元素
:only-childp:only-child选择所有仅有一个子元素的p元素
:optionalinput:optional选择没有"required"的元素属性
:out-of-rangeinput:out-of-range选择指定范围以外的值的元素属性
:read-onlyinput:read-only选择只读属性的元素属性
:read-writeinput:read-write选择没有只读属性的元素属性
:requiredinput:required选择有"required"属性指定的元素属性
:rootroot选择文档的根元素
:target#news:target选择当前活动#news元素(点击URL包含锚的名字)
:validinput:valid选择所有有效值的属性
:linka:link选择所有未访问链接
:visiteda:visited选择所有访问过的链接
:activea:active选择正在活动链接
:hovera:hover把鼠标放在链接上的状态
:focusinput:focus选择元素输入后具有焦点
:first-letterp:first-letter选择每个

元素的第一个字母

:first-linep:first-line选择每个

元素的第一行

:first-childp:first-child选择器匹配属于任意元素的第一个子元素的

元素

:beforep:before在每个

元素之前插入内容

:afterp: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