Как лучше всего превратить элемент Canvas в ссылку - под этим я подразумеваю весь элемент canvas, а не только часть изображения.
Я пробовал очевидную вещь - обертывание элементав элементе A - но поиск проблем в IE9.
Возьмем эту разметку, например:
<a href="#link">
<canvas width="100" height="100">
//fallback
</canvas>
</a>
Используя CSS, я стилизовал цвет фона ссылки, чтобы изменить его при наведении, и нахожу вв большинстве современных холстов, поддерживающих браузеры, он работает должным образом - вы зависаете, фон меняет цвет, вы щелкаете ссылку, ссылка идет.
Однако в IE9 при наведении курсора на элемент он не распознает, что онссылка - без эффекта наведения, курсор не меняется на указатель, щелчок не выполняется.
Интересно, если я добавлю 1-пиксельную границу к элементу A и ненадолго наведу указатель мыши на 1-пиксельную границу, IE9распознает ссылку, и после этого вы можете навести курсор мыши на холст, и он сохраняет свое состояние при наведении и работает как ссылка.
Этопочти как если холст переопределяет ссылку, поэтому браузер не может распознать ссылку, только элемент canvas - если это имеет смысл?
Итак, на самом деле я просто хочу выяснить:
- Допустимо ли просто обернуть элемент Canvas в элемент A - это просто странный IE9 или я делаю это неправильно?
- Если я делаю это неправильно, чтопринятый метод для выполнения этого, казалось бы, простого задания?
Спасибо
ОБНОВЛЕНИЕ
Хорошо, поэтому приведенный ниже ответ все верны, но, к сожалению, не былит работает в моей реализации либо.Моя разметка намного сложнее, чем приведенный выше упрощенный пример, поэтому я предполагаю, что на самом деле есть что-то еще, что вызывает проблему - с родными событиями наведения и событиями, связанными с JavaScript - ничего не работало.
Однако я придумал хак, который решил проблему.Я дал моей ссылке цвет фона RGBA с нулевой непрозрачностью.Как только это было, все работает хорошо.Странно, я знаю, но исправлено:)