Делаем div кликабельным: anchor-tag или onclick
Ну, например, несколько квадратов — хочу сделать их кликабельными:
This is content1
Мне нужно оборачивать их так:
Или прописывать событие onClick?
variant 2
Речь идет о списке товаров, и клик должен вести на страницу товара.
Что семантически правильно? Например, с точки зрения HTML5.
JANB ★
08.01.16 09:55:42 MSK

можно еще: текст внутри в , див — onClick
zarkone ★★
( 08.01.16 10:06:42 MSK )

Выкинуть div вообще.
ritsufag ★★★★★
( 08.01.16 10:26:14 MSK )

a, span
nutsandmilk ★★★
( 08.01.16 10:30:05 MSK )
GoodPerson ★
( 08.01.16 11:32:22 MSK )

Из-за таких, как ты, потом интернеты в браузерах тормозят и Ctrl+Shift+клик неправильно работает.
Естественно, если есть вариант обойтись без JS (а ты сам прекрасно видишь что он есть), лучше обойтись без JS. Так твой сайт будет именно что семантичнее, так сказать, декларативнее, и каждый браузер у каждого пользователя сможет обрабатывать твои ссылки лучше, чем когда ссылки притворяются нессылками и ничего неясно, пока не кликнешь или в код не заглянешь.
greatperson ★
( 08.01.16 13:32:29 MSK )
Ответ на: комментарий от greatperson 08.01.16 13:32:29 MSK

Плюсую. Для ведромобилок с их браузерами onclick иногда не срабатывает корректно, там тап по экрану имеет другое событие.
ThisNameWasFree ★
( 08.01.16 15:34:56 MSK )
Ответ на: комментарий от ThisNameWasFree 08.01.16 15:34:56 MSK

И если далеко засунуть открытие ссылки JS’ом (не inline’ом в тот же элемент, а в отдельный JS с вызовом в onlick), то политика браузера может игнорировать подобное поведение.
ThisNameWasFree ★
( 08.01.16 15:37:50 MSK )
Если очень хочется извращений, то
The a element may be wrapped around entire paragraphs, lists, tables, and so forth, even entire sections, so long as there is no interactive content within (e.g. buttons or other links).
Some elements are described as transparent; they have «transparent» in the description of their content model. The content model of a transparent element is derived from the content model of its parent element: the elements required in the part of the content model that is «transparent» are the same elements as required in the part of the content model of the parent of the transparent element in which the transparent element finds itself.
Deleted
( 08.01.16 16:48:24 MSK )
Последнее исправление: Mystra_x64 08.01.16 16:49:16 MSK (всего исправлений: 1)
Ответ на: комментарий от Deleted 08.01.16 16:48:24 MSK

Ненене, хочется именно правильного способа, никаких извращений и костылей.
JANB ★
( 08.01.16 18:16:00 MSK ) автор топика
Ответ на: комментарий от JANB 08.01.16 18:16:00 MSK

Ну тебе ж уже подсказали: . в плане отображения абсолютно идентичен
, и больше оборачивать что-либо необходимости (если такая необходимость не следует из каких-то других целей).
greatperson ★
( 08.01.16 18:27:39 MSK )
Ответ на: комментарий от JANB 08.01.16 18:16:00 MSK
Стандарт разрешает, значит не костыль.
А вообще, «по обстоятельствам». Если там реально только простой текст внутри или неинтерактивные блоки, то проще https://www.linux.org.ru/forum/web-development/12254164?cid=12254291 (комментарий).
Если внутри есть интерактивные элементы (кнопки, другие ссылки), то этот вариант не подходит, тогда div. Возможно с вокруг других блоков, не являющихся интерактивными.
Deleted
( 08.01.16 18:31:52 MSK )
Последнее исправление: Mystra_x64 08.01.16 18:32:37 MSK (всего исправлений: 1)
Ответ на: комментарий от greatperson 08.01.16 18:27:39 MSK
float элементы являются блоками.
Deleted
( 08.01.16 18:32:24 MSK )
Ответ на: комментарий от Deleted 08.01.16 18:31:52 MSK

Ну стандарт и onclink разрешает.
В любом случае, спасибо, я понял Вашу позицию!
JANB ★
( 08.01.16 18:39:09 MSK ) автор топика
Ответ на: комментарий от greatperson 08.01.16 18:27:39 MSK

Да знаю я про display:block ))
Меня интересует как правильно!) Желательно с аргументацией, мол: «вот решение w3c они так говорят делать» .
JANB ★
( 08.01.16 18:39:55 MSK ) автор топика
Ответ на: комментарий от JANB 08.01.16 18:39:55 MSK

вот решение w3c они так говорят делать
h578b1bde ★☆
( 08.01.16 19:07:08 MSK )
Последнее исправление: h578b1bde 08.01.16 19:07:45 MSK (всего исправлений: 1)
Ответ на: комментарий от greatperson 08.01.16 13:32:29 MSK

Два ведра компота этому юноше, за мой счёт! Задрали любители делать через JS то что элементарно делается чистым HTML+CSS.
MrClon ★★★★★
( 09.01.16 04:40:43 MSK )
Ответ на: комментарий от JANB 08.01.16 18:39:09 MSK
Адекватные люди инлайн-хэндлерами не пользуются в 2016.
Кликабельный DIV

Когда нужно осуществить открытие какой-либо страницы по нажатию на целую таблицу или же блок, наполненный контентом разного рода, тогда-то и нужен кликабельный DIV. Включим логику: нам нужно сделать заключенную в DIV область кликабельной, т.е. при нажатии должна открываться веб-страничка. Для этого нужно обратиться к событию onclick на JavaScript, и прописать туда действие, смену адреса страницы. Конечно, нужно обозначить, что область кликабельна: пропишем в CSS курсор как у ссылок.
Есть альтернативный вариант, но он требует JQuery. Это не плохо. Визуально все то же самое, но для просматривающих код страницы, возможно, это покажется удивительным. Но это в том случае, если Вы поместите скрипт подальше от кода самого блока. У самого тега DIV нет балласта, т.е. событие задается отдельно. И при этом самая главная изюминка здесь в том, что ссылка берется из лежащей внутри «дивки» ссылки.
Если JQuery не установлен, воспользуйтесь следующим кодом:
Увеличить зону кликабельности ссылки — HTML/CSS

Необходимо сделать ссылкой не только подзаголовок, но и саму картинку. Есть три способа три: назовем их хороший, плохой и злой.
Плохой
Просто обернуть и заголовок, и картинку в ссылку следующим образом:
Злой
Обернуть все в одну ссылку:
Хороший
Разместить ссылку в заголовке, а затем расширить область ссылки на всю карточку с помощь псевдоэлемента :before:
div position: relative; > a:before content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; >
Можно использовать любой из этих трех способов, но лично я предпочитаю последний.
Стили CSS – Создаем Кликабельный DIV
Вы, наверняка, хоть раз сталкивались с задачей сделать блок контента, заключенный в DIV, кликабельным. Эта затея отлично реализована на сайте веб-компании StudioForYou – этим приемом обеспечена кликабельность разноцветных блоков!
Итак, как же это делается?
HTML -код трюка:
<div onclick="location.href='Гиперссылка';" style="cursor: pointer;"></div>
Style-параметр превращает курсор мыши в привычный для гиперссылок «пальчик» при наведении на кликабельный DIV.
