水印
给页面的某个区域加上水印。
何时使用
- 页面需要添加水印标识版权时使用。
- 适用于防止信息盗用。
代码演示
- 基本 ·
basic - 多行水印 ·
multi-line - 图片水印 ·
image - 自定义配置 ·
custom - Modal 与 Drawer ·
portal
API
通用属性参考:通用属性
自
antd@5.1.0版本开始提供该组件。
Watermark
| 参数 | 说明 | 类型 | 默认值 | 版本 | 全局配置 |
|---|---|---|---|---|---|
| width | 水印的宽度,content 的默认值为自身的宽度 | number | 120 | × | |
| height | 水印的高度,content 的默认值为自身的高度 | number | 64 | × | |
| inherit | 是否将水印传导给弹出组件如 Modal、Drawer | boolean | true | 5.11.0 | × |
| rotate | 水印绘制时,旋转的角度,单位 ° | number | -22 | × | |
| zIndex | 追加的水印元素的 z-index | number | 999 | × | |
| image | 图片源,建议导出 2 倍或 3 倍图,优先级高 (支持 base64 格式) | string | - | × | |
| content | 水印文字内容 | string | WatermarkText | (string | WatermarkText)[] | - | WatermarkText: 6.5.0 | × |
| font | 文字样式 | Font | Font | × | |
| gap | 水印之间的间距 | [number, number] | [100, 100] | × | |
| offset | 水印距离容器左上角的偏移量,默认为 gap/2 | [number, number] | [gap[0]/2, gap[1]/2] | × | |
| onRemove | 水印因 DOM 变更被移除时触发的回调 | () => void | - | 6.0.0 | × |
WatermarkText
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|---|---|---|---|---|
| font | 自定义单行文字样式 | Font | - | 6.5.0 |
| text | 单行文字内容 | string | - | 6.5.0 |
Font
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|---|---|---|---|---|
| color | 字体颜色 | CanvasFillStrokeStyles.fillStyle | rgba(0,0,0,.15) | |
| fontSize | 字体大小 | number | 16 | |
| fontWeight | 字体粗细 | normal | lighter | bold | bolder | number | normal | |
| fontFamily | 字体类型 | string | sans-serif | |
| fontStyle | 字体样式 | none | normal | italic | oblique | normal | |
| textAlign | 指定文本对齐方向 | CanvasTextAlign | center | 5.10.0 |
主题变量(Design Token)
固定源码中没有此组件的独立 ComponentToken 声明。样式遵循原生全局令牌或所组合组件的令牌;不额外推断字段和默认值。
FAQ
处理异常图片水印
当使用图片水印且图片加载异常时,可以同时添加 content 防止水印失效(自 5.2.3 开始支持)。
<Watermark
height={30}
width={130}
content="Ant Design"
image="https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*lkAoRbywo0oAAAAAAAAAAAAADrJ8AQ/original"
>
<div style={{ height: 500 }} />
</Watermark>
从 5.18.0 版本后,为什么添加了 overflow: hidden 样式?
在之前版本,用户可以通过开发者工具将容器高度设置为 0 来隐藏水印,为了避免这种情况,我们在容器上添加了 overflow: hidden 样式。当容器高度变化时,则内容也一同被隐藏。你可以通过覆盖样式来修改这个行为:
<Watermark style={{ overflow: 'visible' }} />
原生通用属性
Tips: 以下通用属性适用于 antd 大部分组件,不支持的组件会单独说明。
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| style | 自定义样式 | CSSProperties | - |
| className | 自定义类名 | string | - |
| rootClassName | 添加在组件最外层的 className | string | - |
| autoFocus | 自动获取焦点,仅对表单类、链接、交互容器等可聚焦元素生效 | boolean | false |
安装并复现示例
npm install antd@6.6.5 @ant-design/icons@6.3.4 dayjs@1.11.23
使用 ConfigProvider 和原生 App,并单独配置 dayjs 语言。每个示例在查看代码中列出完整源码文件和额外固定依赖。示例名称用于选择演示,不是组件通用属性。主题、语言与 SSR 初始化见资源安装指南。
原生类型参考
源码查看器包含未修改的原生实现和以下声明文件,继承类型仍位于原生包中。代码中的英文注释保留为源码参考。
vendor/components/watermark/context.tsvendor/components/watermark/index.tsxvendor/components/watermark/useSingletonCache.tsvendor/components/watermark/useWatermark.tsvendor/components/watermark/utils.ts
来源与许可
https://github.com/ant-design/ant-design/tree/4a39f54842eade4e565ab336ef6097cd7e723cdd
保留原生中英文正文与可执行示例;官网专用的嵌入章节和令牌表格在本地展开。Ant Design 使用 MIT 许可,另列依赖的许可证也需保留。上传预览禁止向外发起请求,不提供后端服务。