--- localeCode: zh-CN order: 69 category: 反馈类 title: Banner 通知横幅 icon: doc-banner dir: column brief: 横幅通常用于标识全页的状态或通知等。它通常是常驻的,需要用户主动将其关闭。 --- ## 代码演示 ### 如何引入 ```jsx import import { Banner } from '@douyinfe/semi-ui'; ``` ### 基本用法 ```jsx live=true dir="column" import React, { useState } from 'react'; import { Banner, Layout, Button } from '@douyinfe/semi-ui'; () => { const [visible, setVisible] = useState(false); const changeVisible = () => { setVisible(!visible); }; const { Header, Footer, Content } = Layout; const commonStyle = { height: 64, lineHeight: '64px', background: 'var(--semi-color-fill-0)' }; const banner = ( ); return ( <>
Header
{visible? banner : null} Content
Footer
); }; ``` ### 不同类型 支持4种类型:`info`、`warning`、`danger`、`success`。默认为 `info`。 ```jsx live=true dir="column" import React from 'react'; import { Banner } from '@douyinfe/semi-ui'; () => ( <>


); ``` ### 非全屏模式 可以设置 `fullMode={false}` 使用非全屏模式的 banner 样式。 通过 `bordered` 属性可以设置边框。 ```jsx live=true dir="column" import React from 'react'; import { Banner, Typography } from '@douyinfe/semi-ui'; function Demo() { const { Text } = Typography; return (
不知道 AppKey?
} description={
你可先联系对应的研发同学,确认是否已在 应用云平台 申请了应用,并填写对应的信息。
} />
不知道 AppKey?} description={
你可先联系对应的研发同学,确认是否已在 应用云平台 申请了应用,并填写对应的信息。
} />
不知道 AppKey?} description={
你可先联系对应的研发同学,确认是否已在 应用云平台 申请了应用,并填写对应的信息。
} />
不知道 AppKey?} description={
你可先联系对应的研发同学,确认是否已在 应用云平台 申请了应用,并填写对应的信息。
} /> ); } ``` ``` .components-banner-demo { .semi-banner-info.semi-banner-bordered { border: 1px solid var(--semi-color-primary-disabled); } .semi-banner-warning.semi-banner-bordered { border: 1px solid var(--semi-color-warning-light-active); } .semi-banner-danger.semi-banner-bordered { border: 1px solid var(--semi-color-danger-light-active); } .semi-banner-success.semi-banner-bordered { border: 1px solid var(--semi-color-success-light-active); } } ``` ### 自定义内容 可以通过 children 自定义其他渲染内容。 ```jsx live=true dir="column" import React from 'react'; import { Banner } from '@douyinfe/semi-ui'; () => (

); ``` ## API参考 | 属性 | 说明 | 类型 | 默认值 | 版本 | |-------|-------------|-----------------|--------| --- | | bordered | 是否展示边框,仅在非全屏模式下有效 | boolean | false | 1.0 | | className | 类名 | string | - | - | | closeIcon | 自定义关闭icon,为 null 时不显示关闭按钮 | string\| ReactNode | - | 1.0 | | description | 描述内容 | ReactNode | - | 1.0 | | fullMode| 是否为全屏模式 | boolean | true | 1.0 | | icon | 自定义 icon,为 null 时不显示 icon | string\| ReactNode | - | 1.0 | | onClose | 关闭时的回调函数 | function | - | - | | style | 样式名 | object | - | - | | title | 标题 | ReactNode | - | 1.0 | | type | 类型,支持 `info`, `success`, `danger`, `warning` | string | `info` | - | ## Accessibility ### ARIA - 组件的 `role` 为 'alert' - 关闭按钮的 `aria-label` 为 'Close' ### 键盘和焦点 - Banner 的关闭按钮可以使用 `Tab` 键聚焦,按钮聚焦后,敲击 `Enter` 键或 `Space` 键可以关闭 banner ## 文案规范 - 全屏 Banner - 尽量保持内容一行展示完全 - 使用正确的标点符号,句子内使用逗号,句子间使用句号 - 非全屏 Banner - 标题 - 使用精简的语言进行说明 - 标题上尽量避免使用逗号,句号等标点符号,有且只有是疑问句的时候,支持使用问号结尾 - 正文 - 在信息传递完整的前提下,尽可能地将正文压缩至 1 -2 句话 - 对标题进行详尽地描述或者解释,而不是对标题的重复说明 - 使用正确的标点符号,句子内使用逗号,句子间使用句号 ## 设计变量