JGuang

水印

Watermark · Ant Design

交互预览
npm install antd@6.6.5 @ant-design/icons@6.3.4 dayjs@1.11.23

水印

给页面的某个区域加上水印。

何时使用

  • 页面需要添加水印标识版权时使用。
  • 适用于防止信息盗用。

代码演示

  • 基本 · basic
  • 多行水印 · multi-line
  • 图片水印 · image
  • 自定义配置 · custom
  • Modal 与 Drawer · portal

API

通用属性参考:通用属性

自 antd@5.1.0 版本开始提供该组件。

Watermark

参数说明类型默认值版本全局配置
width水印的宽度,content 的默认值为自身的宽度number120×
height水印的高度,content 的默认值为自身的高度number64×
inherit是否将水印传导给弹出组件如 Modal、Drawerbooleantrue5.11.0×
rotate水印绘制时,旋转的角度,单位 °number-22×
zIndex追加的水印元素的 z-indexnumber999×
image图片源,建议导出 2 倍或 3 倍图,优先级高 (支持 base64 格式)string-×
content水印文字内容string | WatermarkText | (string | WatermarkText)[]-WatermarkText: 6.5.0×
font文字样式FontFont×
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.fillStylergba(0,0,0,.15)
fontSize字体大小number16
fontWeight字体粗细normal | lighter | bold | bolder | numbernormal
fontFamily字体类型stringsans-serif
fontStyle字体样式none | normal | italic | obliquenormal
textAlign指定文本对齐方向CanvasTextAligncenter5.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添加在组件最外层的 classNamestring-
autoFocus自动获取焦点,仅对表单类、链接、交互容器等可聚焦元素生效booleanfalse

安装并复现示例

npm install antd@6.6.5 @ant-design/icons@6.3.4 dayjs@1.11.23

使用 ConfigProvider 和原生 App,并单独配置 dayjs 语言。每个示例在查看代码中列出完整源码文件和额外固定依赖。示例名称用于选择演示,不是组件通用属性。主题、语言与 SSR 初始化见资源安装指南。

原生类型参考

源码查看器包含未修改的原生实现和以下声明文件,继承类型仍位于原生包中。代码中的英文注释保留为源码参考。

  • vendor/components/watermark/context.ts
  • vendor/components/watermark/index.tsx
  • vendor/components/watermark/useSingletonCache.ts
  • vendor/components/watermark/useWatermark.ts
  • vendor/components/watermark/utils.ts

来源与许可

https://github.com/ant-design/ant-design/tree/4a39f54842eade4e565ab336ef6097cd7e723cdd

保留原生中英文正文与可执行示例;官网专用的嵌入章节和令牌表格在本地展开。Ant Design 使用 MIT 许可,另列依赖的许可证也需保留。上传预览禁止向外发起请求,不提供后端服务。