代码演示
如何引入
import { Divider } from '@fibrous/semi-ui-react';
基本用法
水平实线
Semi Design 是一个设计系统。它定义了一套中后台设计与前端基础组件。水平虚线
Semi Design 是一个设计系统。它定义了一套中后台设计与前端基础组件。垂直实线
左中右
垂直虚线
左中右
代码
import { Divider } from '@fibrous/semi-ui-react';
export default function DividerDemo() {
return (
<div>
<h3>水平实线</h3>
<span>Semi Design 是一个设计系统。</span>
<Divider margin="12px" />
<span>它定义了一套中后台设计与前端基础组件。</span>
<h3 style={{ marginTop: '40px' }}>水平虚线</h3>
<span>Semi Design 是一个设计系统。</span>
<Divider dashed margin="12px" />
<span>它定义了一套中后台设计与前端基础组件。</span>
<h3 style={{ marginTop: '40px' }}>垂直实线</h3>
<div>
<span>左</span>
<Divider layout="vertical" margin="12px" />
<span>中</span>
<Divider layout="vertical" margin="12px" />
<span>右</span>
</div>
<h3 style={{ marginTop: '40px' }}>垂直虚线</h3>
<div>
<span>左</span>
<Divider layout="vertical" dashed margin="12px" />
<span>中</span>
<Divider layout="vertical" dashed margin="12px" />
<span>右</span>
</div>
</div>
);
}包含内容
这是居左文字
这是居中文字
这是居右文字
代码
import { IconSemiLogo } from '@fibrous/semi-icons-react';
import { Divider } from '@fibrous/semi-ui-react';
export default function DividerDemo() {
return (
<div>
<Divider margin="12px" align="left">
这是居左文字
</Divider>
<Divider margin="12px" align="center">
这是居中文字
</Divider>
<Divider margin="12px" align="right">
这是居右文字
</Divider>
<Divider margin="12px">
<IconSemiLogo />
</Divider>
</div>
);
}API参考
Props
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| align | 带内容时内容的对齐方式,可选 left、center 或 right。 | 'left' | 'right' | 'center' | "center" |
| children | 分割线中的内容,仅水平方向显示;垂直方向不显示内容。 | ReactNode | - |
| className | 根元素的类名。 | string | - |
| dashed | 是否为虚线。 | boolean | - |
| layout | 分割线方向,可选 horizontal 或 vertical。 | 'horizontal' | 'vertical' | "horizontal" |
| margin | 分割线上下的 margin,垂直方向时为左右的 margin;数字按像素处理。 | number | string | - |
| ref | 根元素(div)的引用。 | TypeReact.Ref<HTMLDivElement> | - |
| style | 根元素的样式。 | CSSProperties | - |
id、onClick、role、aria-* 等其他原生属性落在根元素上。默认 role 为 separator,带内容时不设置,传入的 role 会覆盖默认值。
设计变量
下表是组件内部的 Sass 变量,不能覆写。定制样式请覆写 --semi-* CSS 变量(见 Design Token 页),或写不分层的 CSS 规则。
| Sass 变量 | 值 | 用法 |
|---|---|---|
| $spacing-divider_horizontal-marginLeft | 0px | 水平模式左间距 |
| $spacing-divider_horizontal-marginRight | 0px | 水平模式右间距 |
| $spacing-divider_horizontal-marginTop | 1px | 水平模式上间距 |
| $spacing-divider_horizontal-marginBottom | 1px | 水平模式下间距 |
| $spacing-divider_vertical-marginLeft | 1px | 垂直模式左间距 |
| $spacing-divider_vertical-marginRight | 1px | 垂直模式右间距 |
| $spacing-divider_vertical-marginTop | 0px | 垂直模式上间距 |
| $spacing-divider_vertical-marginBottom | 0px | 垂直模式下间距 |
| $spacing-divider_inner_text-paddingLeft | 8px | 内容为纯文字时内容左间距 |
| $spacing-divider_inner_text-paddingRight | 8px | 内容为纯文字时内容右间距 |
| $spacing-divider_inner_text-paddingTop | 0px | 内容为纯文字时内容上间距 |
| $spacing-divider_inner_text-paddingBottom | 0px | 内容为纯文字时内容下间距 |
| $width-divider_inner_text_left_line | 40px | 左对齐文字时左间距宽度 |
| $width-divider_inner_text_right_line | 40px | 右对齐文字时右间距宽度 |
| $width-divider-border | 1px | 分割线宽度 |
| $height-divider_vertical | 20px | 垂直分割线高度 |
| $color-divider_border-color | var(--semi-color-border) | 分割线颜色 |
| $color-divider_text-default | var(--semi-color-text-0) | 标题颜色 |
| $font-divider_text-weight | $font-weight-bold | 分割线文字字重 |