我怎样用css/html实现下面的水印文本(“howbloggerz”)?
olmpazwi1#
这与Daerik的答案非常相似,但我希望避免使用额外的元素,并自动生成水印文本。
document.querySelectorAll('.watermarked').forEach(function(el) { el.dataset.watermark = (el.dataset.watermark + ' ').repeat(300); });
.watermarked { position: relative; overflow: hidden; } .watermarked img { width: 100%; } .watermarked::before { position: absolute; top: -75%; left: -75%; display: block; width: 150%; height: 150%; transform: rotate(-45deg); content: attr(data-watermark); opacity: 0.7; line-height: 3em; letter-spacing: 2px; color: #fff; }
<div class="watermarked" data-watermark="howbloggerz"> <img src="http://www.w3schools.com/css/img_fjords.jpg"> </div>
eagi6jfj2#
我现在使用svg作为背景图像。
body { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='100px' width='100px'><text transform='translate(20, 100) rotate(-45)' fill='rgb(245,45,45)' font-size='20'>watermark</text></svg>"); }
<body style="width:100%;height:100%"></body>
设置背景的Javascript:一个二个一个一个
yiytaume3#
设置容器的大小,使用绝对定位浮动文本,使用旋转transforming文本。
#watermark { height: 450px; width: 600px; position: relative; overflow: hidden; } #watermark img { max-width: 100%; } #watermark p { position: absolute; top: 0; left: 0; color: #fff; font-size: 18px; pointer-events: none; -webkit-transform: rotate(-45deg); -moz-transform: rotate(-45deg); }
个字符
**注意:**对于重复的文本,我建议使用JavaScript或jQuery。
tgabmvqs4#
如果只是在图像上放置一个文本,这里有另一个可能的css选项,drop-shadow和一个pseudo(text-shadow也可以)
drop-shadow
text-shadow
.watermarked:after {/* draw the watermark at screen*/ color: rgba(0, 0, 0, 0.4); content: 'watermarked watermarked watermarked'; word-spacing: 3em; transform: rotate(-60deg); filter: drop-shadow(2em 3em #000) drop-shadow(4em 6em #000) drop-shadow(8em 12em #000) drop-shadow(-15em -24em #000) ; } /* makeup */ .watermarked { width: max-content; border: solid; display: grid; overflow: hidden; } img, .watermarked:after { grid-row: 1; grid-column: 1; margin: auto; }
lyr7nygr5#
Array.from(document.querySelectorAll('.watermarked')).forEach(function(el) { el.dataset.watermark = (el.dataset.watermark + ' ').repeat(300); });
.watermarked::before { position: fixed; top: -75%; left: -75%; display: block; width: 300%; height: 300%; transform: rotate(-45deg); content: attr(data-watermark); font-size: 30px; opacity: 0.75; line-height: 4em; letter-spacing: 2px; color: #cccccc; }
<html> <head> <title> Form and Watermarks </title> </head> <body> <h1>Form Demo</h1> <form method="post"> First Name: <input name="first" type="text" /><br> Last name: <input name="last" type="text" /> <br /> <input name="Submit" type="submit" value="submit" /> </form> <div class='watermarked' data-watermark='watermark..' ></div> </body> </html>
它工作得很好,但不是与html表单。表单元素变得禁用。看看这个。
vohkndzv6#
CSS:- .watermarked::before { position: fixed; top: -75%; left: -75%; display: block; width: 300%; height: 300%; transform: rotate(-45deg); content: attr(data-watermark); font-size: 30px; opacity: 0.15; line-height: 4em; letter-spacing: 2px; color: #ff0523; z-index:-1; } HTML:- <div class="watermarked" data-watermark="Watermark.."></div> SCRIPT:- <script> Array.from(document.querySelectorAll('.watermarked')).forEach(function(el) { el.dataset.watermark = (el.dataset.watermark + ' ').repeat(10000); }); </script>
水印的位置应该是固定的,显示的高度应该是你的屏幕大小。然后水印将打印在你的整个报告或什么。
fgw7neuy7#
一个一个三个一个一个一个一个一个四个一个一个一个一个一个五个一个
7条答案
按热度按时间olmpazwi1#
这与Daerik的答案非常相似,但我希望避免使用额外的元素,并自动生成水印文本。
eagi6jfj2#
我现在使用svg作为背景图像。
设置背景的Javascript:
一个二个一个一个
yiytaume3#
设置容器的大小,使用绝对定位浮动文本,使用旋转transforming文本。
个字符
**注意:**对于重复的文本,我建议使用JavaScript或jQuery。
tgabmvqs4#
如果只是在图像上放置一个文本,这里有另一个可能的css选项,
drop-shadow
和一个pseudo(text-shadow
也可以)lyr7nygr5#
它工作得很好,但不是与html表单。表单元素变得禁用。看看这个。
vohkndzv6#
水印的位置应该是固定的,显示的高度应该是你的屏幕大小。然后水印将打印在你的整个报告或什么。
fgw7neuy7#
一个一个三个一个一个一个一个一个四个一个一个一个一个一个五个一个