在 Ant Design Vue (<a-col>
和 <a-textarea>
) 中为文本域添加水印,可以通过以下两种方式实现:
方法1:使用 CSS 背景水印
直接通过 CSS 为 <a-textarea>
添加背景水印:
<a-col :span="16">
<a-form-item label="打款备注" style="width:178%; margin-left: -145px">
<a-textarea
class="watermarked-textarea"
v-model:value="formMakePay.remark"
placeholder="打款凭证中的转账附言或者汇款附言或者附言中的内容"
rows="3"
:maxlength="300"
@input="(e) => handleInput(e, 'remark')"
/>
</a-form-item>
</a-col>
CSS 样式(全局或 Scoped):
.watermarked-textarea {
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='100'><text x='10' y='50' font-size='14' fill='rgba(0,0,0,0.2)' transform='rotate(-15)'>0625rem</text></svg>");
background-repeat: repeat;
}
- 效果:文本域背景会显示倾斜的重复水印文字 “0625rem”。
- 调整参数:修改
fill
(透明度)、font-size
、rotate
(旋转角度)等。
方法2:使用伪元素覆盖(纯前端动态水印)
如果水印需要动态生成或更复杂控制,可以用伪元素覆盖:
.watermarked-textarea {
position: relative;
}
.watermarked-textarea::after {
content: "0625rem";
position: absolute;
top: 10px;
left: 10px;
color: rgba(0, 0, 0, 0.2);
pointer-events: none; /* 防止干扰输入 */
}
注意事项
- 样式冲突:确保自定义样式不会被 Ant Design Vue 默认样式覆盖。
- 动态水印:如果需要根据数据动态生成水印(如从
v-model
获取),需通过 JavaScript/DOM操作实现。 - 响应式问题:如果布局复杂(如
margin-left:-145px
),可能需要调整水印位置。
选择适合你场景的方案即可。
内容由零声教学AI助手提供,问题来源于学员提问