css怎么给网页添加水印效果?

css怎么给网页添加文字水印效果?有没有例子?
是文字水印,不是直接放一张图片

阅读 10.4k
3 个回答

解决了

let watermark = {};

let setWatermark = str => {
  let id = "1.23452384164.123412415";

  if (document.getElementById(id) !== null) {
    document.body.removeChild(document.getElementById(id));
  }

  let can = document.createElement("canvas");
  can.width = 200;
  can.height = 100;

  let cans = can.getContext("2d");
  cans.rotate((-20 * Math.PI) / 180);
  cans.font = "15px Vedana";
  cans.fillStyle = "rgba(0, 0, 0, 0.30)";
  cans.textAlign = "left";
  cans.textBaseline = "Middle";
  cans.fillText(str, can.width / 20, can.height);

  let div = document.createElement("div");
  div.id = id;
  div.style.pointerEvents = "none";
  div.style.top = "3px";
  div.style.left = "0px";
  div.style.position = "fixed";
  div.style.zIndex = "100000";
  div.style.width = document.documentElement.clientWidth + "px";
  div.style.height = document.documentElement.clientHeight + "px";
  div.style.background =
    "url(" + can.toDataURL("image/png") + ") left top repeat";
  document.body.appendChild(div);
  return id;
};

// 该方法只允许调用一次
watermark.set = str => {
  let id = setWatermark(str);
  setInterval(() => {
    if (document.getElementById(id) === null) {
      id = setWatermark(str);
    }
  }, 2000);
  window.onresize = () => {
    setWatermark(str);
  };
};

export default watermark;

参考:https://www.jianshu.com/p/9f3...

不就是一张图片定位上去吗?

<style type="text/css">
.watermark {
  position:fixed;top:0;left:0;width:100vw;height:100vh; /* 定位,覆盖整个 viewport */
  pointer-events:none; /* 禁止响应鼠标事件 */
  background:url('watermark.png') top left repeat transparent; /* 水印图片背景平铺 */
}
</style>
<div class="water-mark"></div>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏