Open LingYanSi opened 2 years ago
使用svg给confluence/wiki添加水印图片
https://css-tricks.com/probably-dont-base64-svg/
;(function() {
var name = document.querySelector(`[name="ajs-current-user-fullname"]`).content;
var svgStr = encodeURIComponent(`<svg viewBox="0 0 100 60" width="100" height="60" xmlns="http://www.w3.org/2000/svg">
<style> .text { fill: gray; fill-opacity: 0.2; font: italic 13px sans-serif; } </style>
<text x="0" y="13" class="text">${name}</text>
</svg>`)
var div = document.createElement('div')
div.style.cssText += `
position: fixed;
top: 0;
left: 0;
z-index: 1000;
width: 100%;
height: 100%;
pointer-events: none;
background-image: url(data:image/svg+xml;utf8,${svgStr});
background-repeat: repeat;
`
document.documentElement.appendChild(div)
})();
问题:为什么使用要使用svg,iconfont它不香吗?
但字体文件的好处在于,可以像正常文本一样设置
color: red
,svg如何实现?实现不了的话,svg的应用范围就会受限在讨论这个问题之前:我们谈论一下,真正的需求是什么 如果是彩色的svg图标,是不需要对图标的颜色进行修改,我们真正想要的是修改纯色的svg图标的颜色
来看一个svg文件,有一个fill属性来指定颜色,那么这个颜色是否支持currentColor呢?尝试了一下,是可以的!
但是这需要在代码中写svg,比起字体库的单个class就可以指定图标,有点繁杂了。能否
background: url('cdn/icon.svg')
指定图标,并可以通过color
切换svg图标颜色呢?简单思考了一下,似乎不可以。 因为currentColor
是dom/css的一个运行时产物,作为一个图片文件来处理,浏览器肯定不会实时修改器色值的(待考证)