diff --git a/examples/app.vue b/examples/app.vue index 0c51d3d1..5f4c330c 100644 --- a/examples/app.vue +++ b/examples/app.vue @@ -64,6 +64,7 @@ nav {
  • ColorPicker
  • AutoComplete
  • Scroll
  • +
  • Divider
  • Time
  • diff --git a/examples/main.js b/examples/main.js index e0956e8d..a9d8b262 100644 --- a/examples/main.js +++ b/examples/main.js @@ -211,6 +211,10 @@ const router = new VueRouter({ path: '/scroll', component: (resolve) => require(['./routers/scroll.vue'], resolve) }, + { + path: '/divider', + component: (resolve) => require(['./routers/divider.vue'], resolve) + }, { path: '/time', component: (resolve) => require(['./routers/time.vue'], resolve) diff --git a/examples/routers/divider.vue b/examples/routers/divider.vue new file mode 100644 index 00000000..350c6b0d --- /dev/null +++ b/examples/routers/divider.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/src/components/divider/divider.vue b/src/components/divider/divider.vue new file mode 100644 index 00000000..844bed0f --- /dev/null +++ b/src/components/divider/divider.vue @@ -0,0 +1,61 @@ + + + + + diff --git a/src/components/divider/index.js b/src/components/divider/index.js new file mode 100644 index 00000000..e4e86666 --- /dev/null +++ b/src/components/divider/index.js @@ -0,0 +1,3 @@ +import Divider from './divider.vue'; + +export default Divider; \ No newline at end of file diff --git a/src/index.js b/src/index.js index 24778337..c8dd3582 100644 --- a/src/index.js +++ b/src/index.js @@ -54,6 +54,7 @@ import Tree from './components/tree'; import Upload from './components/upload'; import {Row, Col} from './components/grid'; import {Select, Option, OptionGroup} from './components/select'; +import Divider from './components/divider'; import locale from './locale/index'; const components = { @@ -128,7 +129,8 @@ const components = { Tooltip, Transfer, Tree, - Upload + Upload, + Divider }; const iview = { diff --git a/src/styles/components/divider.less b/src/styles/components/divider.less new file mode 100644 index 00000000..be93d983 --- /dev/null +++ b/src/styles/components/divider.less @@ -0,0 +1,143 @@ + + +@divider-prefix-cls: ~"@{css-prefix}divider"; + +@font-size-base : 14px; +@font-size-lg : @font-size-base + 2px; +@heading-color : fade(#000, 85%); + +.reset-component() { + font-family: @font-family; + font-size: @font-size-base; + line-height: @line-height-base; + color: @text-color; + box-sizing: border-box; + margin: 0; + padding: 0; + list-style: none; +} + +.@{divider-prefix-cls} { + .reset-component; + background: @border-color-split; + + &, // for compatiable + &-vertical { + margin: 0 8px; + display: inline-block; + height: 0.9em; + width: 1px; + vertical-align: middle; + position: relative; + top: -0.06em; + } + &-horizontal { + display: block; + height: 1px; + width: 100%; + margin: 24px 0; + } + &-horizontal&-with-text { + display: table; + white-space: nowrap; + text-align: center; + background: transparent; + font-weight: 500; + color: @heading-color; + font-size: @font-size-lg; + margin: 16px 0; + + &:before, + &:after { + content: ''; + display: table-cell; + position: relative; + top: 50%; + width: 50%; + border-top: 1px solid @border-color-split; + transform: translateY(50%); + } + } + &-inner-text { + display: inline-block; + padding: 0 24px; + } + &-horizontal&-with-text-left { + display: table; + white-space: nowrap; + text-align: center; + background: transparent; + font-weight: 500; + color: @heading-color; + font-size: @font-size-base; + margin: 16px 0; + + &:before { + content: ''; + display: table-cell; + position: relative; + top: 50%; + width: 5%; + border-top: 1px solid @border-color-split; + transform: translateY(50%); + } + &:after { + content: ''; + display: table-cell; + position: relative; + top: 50%; + width: 95%; + border-top: 1px solid @border-color-split; + transform: translateY(50%); + } + &-inner-text { + display: inline-block; + padding: 0 10px; + } + } + + &-horizontal&-with-text-right { + display: table; + white-space: nowrap; + text-align: center; + background: transparent; + font-weight: 500; + color: @heading-color; + font-size: @font-size-base; + margin: 16px 0; + + &:before { + content: ''; + display: table-cell; + position: relative; + top: 50%; + width: 95%; + border-top: 1px solid @border-color-split; + transform: translateY(50%); + } + &:after { + content: ''; + display: table-cell; + position: relative; + top: 50%; + width: 5%; + border-top: 1px solid @border-color-split; + transform: translateY(50%); + } + &-inner-text { + display: inline-block; + padding: 0 10px; + } + } + &-dashed { + background: none; + border-top: 1px dashed @border-color-split; + } + &-horizontal&-with-text&-dashed { + border-top: 0; + &:before, + &:after { + border-style: dashed none none; + } + } +} \ No newline at end of file diff --git a/src/styles/components/index.less b/src/styles/components/index.less index 32e1d661..7944f688 100644 --- a/src/styles/components/index.less +++ b/src/styles/components/index.less @@ -45,5 +45,6 @@ @import "avatar"; @import "color-picker"; @import "auto-complete"; +@import "divider"; @import "anchor"; @import "time";