Зробити весь Div натисканням - CSS-хитрощі

Anonim

Оновлення в листопаді 2020 року: Я думаю, що найкращим із можливих методів для цього є метод 4 у цій статті. Елемент обгортки (або будь-який інший елемент) залишається семантичним та доступним, при цьому його можна натискати по всій області. Він не порушує виділення тексту та поважає інші “вкладені” інтерактивні елементи.

Це цілком дійсний HTML:

 anything 

І пам’ятайте, що ви можете робити посилання display: block;, так що вся прямокутна область стає “клікабельною”. Але якщо там є маса вмісту, це абсолютно жахливо для доступності, читаючи весь цей вміст як інтерактивне посилання.

Якщо вам абсолютно потрібно використовувати JavaScript, один із способів - знайти посилання всередині div і перейти до нього, hrefколи натискається div. Це з jQuery:

$(".myBox").click(function() ( window.location = $(this).find("a").attr("href"); return false; ));

Шукає посилання всередині div з класом “myBox”. Переспрямовує на це значення посилань, коли клацне будь-де в div.

Довідковий HTML:

 blah blah blah. link 

Або ви можете встановити data-*атрибут на і зробити так:

window.location = $(".myBox").data("location");