css - 使 svg 对象可点击链接并保持对象悬停样式

标签 css svg

问题

我有一个 SVG 对象,它包裹在一个 anchor 中。我面临的问题是我希望我的 SVG 具有悬停样式,但我还需要它是可点击的,因此需要 anchor 。

我的对象:

<a href="http://mylink.co.uk">
    <object data="mysvg.svg" type="image/svg+xml">
        <span>Your browser doesn't support SVG images</span>
    </object>
</a>

问题是该对象是一个具有交互作用的元素,悬停时它没有注册 anchor 。为了解决这个问题,我尝试了:

object{
   pointer-events: none;
}

这解决了该问题并让 成为可点击元素。缺点是现在我的对象悬停样式不起作用,因为从技术上讲,该对象不再是我悬停的元素。

对象之前...

我最初采用的是使用xlink方式的方法:

<a href="#" class="my-button">
  <svg viewBox="0 0 297 149" class="my-icon">
     <use xlink:href="svgsprite.svg#my-icon"></use>
  </svg>
</a>

但我遇到了让 SVG 部分在浏览器中保持样式一致的实际问题。 Chrome 尤其不喜欢它。

有没有一种方法可以让我的 SVG 的各个部分通过 CSS 设置样式,即填充颜色,并且仍然按照我尝试的方式使用它,将它包装在一个 anchor 中?有更新(更好)的方法吗?

您可以找到一个工作示例来更好地说明我的问题。请find that here .

最佳答案

从您的问题中并不清楚您到底想做什么(测试用例会很有用)。

但是您是否尝试过使用 SVG 的方法 <a>元素,而不是 HTML 元素?也许这会帮助您避免遇到的问题。

<svg viewBox="0 0 297 149" class="my-icon">
  <a xlink:href="http://mylink.co.uk" class="my-button">
    <use xlink:href="svgsprite.svg#my-icon"></use>
  </a>
</svg>

SVG 从外部继承了一些样式属性 <a>元素以稍微出乎意料的方式。这可能是您造型问题的根源。

关于css - 使 svg 对象可点击链接并保持对象悬停样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31165467/

相关文章:

javascript - bootstrap col push pull 使用移动版

javascript - 在悬停时显示全名 limitTo Content 使用 angularjs?

c# - 如何使用 Linq (C#) 解析 SVG 样式属性

javascript - 引用不同 SVG 文档的样式和脚本 SVG 文档

algorithm - 我如何在 SVG 中绘制这个形状?

javascript - 链接已连接但不可见

css - 相对div中的绝对底部定位

javascript - CSS:绝对位置改变div宽度

css - 如何以慢速流畅地制作CSS3动画?

javascript - 如何让 Knockout.js 为属性设置 namespaceURI?