Как смоделировать SVG `указатель-события: ограничивающий прямоугольник` в Firefox & Safari

У меня есть SVG с вложенными SVG внутри, которые обернуты в различные <a> теги. Я хотел бы, чтобы весь вложенный SVG активировал ссылку (т. Е. Был активным), но, похоже, я не могу использовать свойство CSS pointer-events: bounding-box поскольку это значение не поддерживается Safari & Firefox. (Это прекрасно работает в Chrome, однако).

Какой другой подход я мог бы использовать для имитации этого поведения в этих браузерах?

1 ответ

Решение

Закройте каждый SVG с прозрачным <rect> и оберните это с элементом ссылки.

<svg width="300" height="200">

  <a xlink:href="http://www.google.com">
    <svg x="50" y="50" width="200" height="100">
      <ellipse cx="100" cy="50" rx="100" ry="50" fill="red"/>
    </svg>
  </a>
  
</svg>

<svg width="300" height="200">

  <svg x="50" y="50" width="200" height="100">
    <ellipse cx="100" cy="50" rx="100" ry="50" fill="green"/>
  </svg>
  <a xlink:href="http://www.google.com">
    <rect x="50" y="50" width="200" height="100" fill="transparent"/>
  </a>
  
</svg>

Другие вопросы по тегам