diff --git a/docs/component/divider.md b/docs/component/divider.md
index b44379539..60b3b4b6e 100644
--- a/docs/component/divider.md
+++ b/docs/component/divider.md
@@ -1,14 +1,53 @@
-# Divider 分割线
+# Divider 分割线
+:::danger 请注意
+`hairline`、`dashed`、`content-position`、`vertical`属性为 $LOWEST_VERSION$ 版本新增支持,在此之前仅支持默认插槽显示文本和自定义`color`。
+:::
## 基本使用
-使用默认插槽设置内容。
+默认渲染一条水平分割线。
```html
-这是分割线
+
+```
+
+## 展示文本
+
+使用默认插槽在分割线中间插入内容。
+
+```html
+展示文本
+```
+
+## 自定义渲染内容
+
+使用默认插槽在分割线中间插入自定义内容。
+
+```html
+
+
+
+```
+
+## 内容位置
+
+通过 `content-position` 指定内容所在位置。
+
+```html
+中间
+左侧
+右侧
+```
+
+## 虚线
+
+添加 `dashed` 属性使分割线渲染为虚线。
+
+```html
+虚线分割
```
## 自定义颜色
@@ -19,20 +58,48 @@
自定义颜色
```
+## 垂直分割线
+
+添加 `vertical` 属性使分割线渲染为垂直分割线。
+
+```html
+
+ 文本
+
+ 文本
+
+ 文本
+
+ 文本
+
+ 文本
+
+```
+
+```css
+.content {
+ padding: 12rpx 15px;
+}
+```
+
## Attributes
-| 参数 | 说明 | 类型 | 可选值 | 默认值 | 最低版本 |
-|-----|------|-----|-------|-------|--------|
-| color | 自定义颜色,所有颜色的写法 | string | - | - | - |
+| 参数 | 说明 | 类型 | 可选值 | 默认值 | 最低版本 |
+| ---------------- | ------------------------------ | ------- | ----------------------- | -------- | ---------------- |
+| color | 自定义颜色,支持所有颜色的写法 | string | - | - | - |
+| hairline | 是否显示边框 | boolean | - | true | $LOWEST_VERSION$ |
+| dashed | 是否显示为虚线 | boolean | - | false | $LOWEST_VERSION$ |
+| content-position | 内容位置 | string | `left`/`center`/`right` | `center` | $LOWEST_VERSION$ |
+| vertical | 是否显示为垂直分割线 | boolean | - | false | $LOWEST_VERSION$ |
## Slot
-| name | 说明 | 最低版本 |
-|------|-----|---------|
-| default | 内容 | - |
+| name | 说明 | 最低版本 |
+| ------- | ---- | -------- |
+| default | 内容,仅在 `vertical` 为 `false` 时生效 | - |
## 外部样式类
-| 类名 | 说明 | 最低版本 |
-|-----|-----|---------|
-| custom-class | 根节点样式 | - |
+| 类名 | 说明 | 最低版本 |
+| ------------ | ---------- | -------- |
+| custom-class | 根节点样式 | - |
diff --git a/src/pages/divider/Index.vue b/src/pages/divider/Index.vue
index bef32532b..f6149f506 100644
--- a/src/pages/divider/Index.vue
+++ b/src/pages/divider/Index.vue
@@ -1,21 +1,51 @@
-
- 这是分割线
+
+
+
+ 展示文本
+
+
+
+
+
+
+
+
+
+ 中间
+ 左侧
+ 右侧
+
+
+
+ 虚线分割
+
+
自定义颜色
+
+
+
+ 文本
+
+ 文本
+
+ 文本
+
+ 文本
+
+ 文本
+
+
-
+
diff --git a/src/uni_modules/wot-design-uni/components/common/abstracts/variable.scss b/src/uni_modules/wot-design-uni/components/common/abstracts/variable.scss
index db0bb1aa6..521cffa37 100644
--- a/src/uni_modules/wot-design-uni/components/common/abstracts/variable.scss
+++ b/src/uni_modules/wot-design-uni/components/common/abstracts/variable.scss
@@ -268,9 +268,21 @@ $-collapse-more-color: var(--wot-collapse-more-color, $-color-theme) !default; /
/* divider */
$-divider-padding: var(--wot-divider-padding, 0 $-size-side-padding) !default; // 两边间距
+$-divider-margin: var(--wot-divider-margin, 16px 0) !default; // 上下间距
$-divider-color: var(--wot-divider-color, rgba(0, 0, 0, 0.45)) !default; // 字体颜色
-$-divider-line-color: var(--wot-divider-line-color, rgba(0, 0, 0, 0.15)) !default; // 线条颜色
+$-divider-line-color: var(--wot-divider-line-color, currentColor) !default; // 线条颜色
+$-divider-line-height: var(--wot-divider-line-height, 1px) !default; // 线条高度
$-divider-fs: var(--wot-divider-fs, 14px) !default; // 字体大小
+$-divider-content-left-width: var(--wot-divider-content-left-width, 10%) !default; // 左侧内容宽度
+$-divider-content-left-margin: var(--wot-divider-content-left-margin, 12px) !default; // 左侧内容距离线距离
+$-divider-content-right-margin: var(--wot-divider-content-right-margin, 12px) !default; // 右侧内容距离线距离
+$-divider-content-right-width: var(--wot-divider-content-right-width, 10%) !default; // 右侧内容宽度
+$-divider-vertical-height: var(--wot-divider-vertical-height, 16px) !default; // 垂直分割线高度
+$-divider-vertical-content-margin: var(--wot-divider-vertical-content-margin, 0 8px) !default; // 垂直分割线内容间距
+$-divider-vertical-line-width: var(--wot-divider-vertical-line-width, 1px) !default; // 线条高度
+
+
+
/* drop-menu */
$-drop-menu-height: var(--wot-drop-menu-height, 48px) !default; // 展示选中项的高度
diff --git a/src/uni_modules/wot-design-uni/components/wd-divider/index.scss b/src/uni_modules/wot-design-uni/components/wd-divider/index.scss
index 3bb29c9cc..c67d10650 100644
--- a/src/uni_modules/wot-design-uni/components/wd-divider/index.scss
+++ b/src/uni_modules/wot-design-uni/components/wd-divider/index.scss
@@ -15,18 +15,86 @@
position: relative;
display: flex;
padding: $-divider-padding;
+ margin: $-divider-margin;
align-items: center;
color: $-divider-color;
font-size: $-divider-fs;
- @include e(line) {
- display: block;
+ &::after,
+ &::before {
flex: 1;
- height: 1px;
- transform: scaleY(0.5);
- background: $-divider-line-color;
+ display: block;
+ box-sizing: border-box;
+ border-style: solid;
+ border-color: $-divider-line-color;
+ border-width: $-divider-line-height 0 0;
}
- @include e(content) {
- padding: 0 12px;
+
+ &::before {
+ content: '';
}
-}
+
+ @include m(center, left, right) {
+ &::after {
+ content: '';
+ margin-left: $-divider-content-left-margin;
+ }
+
+ &::before {
+ margin-right: $-divider-content-right-margin;
+ }
+ }
+
+ @include m(left) {
+ &::before {
+ max-width: $-divider-content-left-width;
+ }
+ }
+
+ @include m(right) {
+ &::after {
+ max-width: $-divider-content-right-width;
+ }
+ }
+
+ @include when(hairline) {
+
+ &::before,
+ &::after {
+ transform: scaleY(0.5);
+ }
+ }
+
+ @include when(dashed) {
+
+ &::before,
+ &::after {
+ border-style: dashed;
+ }
+ }
+
+ @include m(vertical) {
+ display: inline-block;
+ width: $-divider-vertical-line-width;
+ height: $-divider-vertical-height;
+ margin: $-divider-vertical-content-margin;
+ padding: 0;
+ vertical-align: middle;
+
+ &::before {
+ height: 100%;
+ border-width: 0 0 0 $-divider-vertical-line-width;
+ }
+
+ &::after {
+ display: none;
+ }
+
+ @include when(hairline) {
+ &::before {
+ transform: scaleX(0.5);
+ }
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/src/uni_modules/wot-design-uni/components/wd-divider/types.ts b/src/uni_modules/wot-design-uni/components/wd-divider/types.ts
index 80a114b61..df9e31322 100644
--- a/src/uni_modules/wot-design-uni/components/wd-divider/types.ts
+++ b/src/uni_modules/wot-design-uni/components/wd-divider/types.ts
@@ -1,12 +1,35 @@
import type { ExtractPropTypes } from 'vue'
-import { baseProps, makeStringProp } from '../common/props'
+import { baseProps, makeBooleanProp, makeStringProp } from '../common/props'
+
+export type DividerPosition = 'center' | 'left' | 'right'
+export type DividerDirection = 'horizontal' | 'vertical'
export const dividerProps = {
...baseProps,
/**
- * 自定义颜色,所有颜色的写法
+ * 自定义颜色
+ */
+ color: makeStringProp(''),
+ /**
+ * 内容位置,可选值为 `left` `right` `center`
+ * 默认值:`center`
+ */
+ contentPosition: makeStringProp('center'),
+ /**
+ * 是否显示为虚线
+ * 默认值:`false`
+ */
+ dashed: Boolean,
+ /**
+ * 是否为垂直分割线
+ * 默认值:`false`
+ */
+ vertical: makeBooleanProp(false),
+ /**
+ * 是否显示为 0.5px 的线
+ * 默认值:`true`
*/
- color: makeStringProp('')
+ hairline: makeBooleanProp(true)
}
export type DividerProps = ExtractPropTypes
diff --git a/src/uni_modules/wot-design-uni/components/wd-divider/wd-divider.vue b/src/uni_modules/wot-design-uni/components/wd-divider/wd-divider.vue
index 4e47bad02..4211cd9b1 100644
--- a/src/uni_modules/wot-design-uni/components/wd-divider/wd-divider.vue
+++ b/src/uni_modules/wot-design-uni/components/wd-divider/wd-divider.vue
@@ -1,10 +1,6 @@
-
-
-
-
-
-
+
+