我有一个SVG精灵:
<svg xmlns="http://www.w3.org/2000/svg" style="display:none;">
<symbol id="ailMouseIco" viewBox="0 0 51.2 76.5">
<path fill="#FFF" stroke="#000" stroke-width="3" d="M47.5 48.6l-46-45v62l14-13 10 22 10-4-10-22h22z"/>
</symbol>
</svg>
在其他地方,我使用该sprite如下:
<svg width="30" height="30">
<use xlink:href="#ailMouseIco"></use>
</svg>
我需要使用这个精灵作为鼠标光标(CSS)。
我试过了
html *, html:hover {
cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cuse xlink:href='%23ailMouseIco'%3E%3C/use%3E%3C/svg%3E"),default !important;
}
以及
html *, html:hover {
cursor: url("#ailMouseIco"),default !important;
}
还有其他几个类似的选择,但都不开心
有什么想法吗?
4条答案
按热度按时间bqujaahr1#
试试这个
vql8enpb2#
正如罗伯特·朗森所指出的:
在数据URI中既不能使用外部文件,也不能使用内联的
<defs>
或<symbol>
引用。解决办法:您可以将光标精灵保存在外部svg文件中。
但是还需要添加一个引用光标
<symbol>
的可见/呈现的<use>
元素。否则,光标将不会显示:
外部svg文件:cursor.svg
验证码:
HTML用法
您的svg需要托管在同一个域上-否则CORS规则将阻止svg加载/渲染。
x8goxv8g3#
只需调整您的SVG以适应url语法...
ylamdve64#
现代的浏览器需要更少的转义,您只需要
xlink
表示法内联SO代码段无法正确运行;