Как сделать кликабельный блок html
Перейти к содержимому

Как сделать кликабельный блок html

  • автор:

Стили CSS – Создаем Кликабельный DIV

Вы, наверняка, хоть раз сталкивались с задачей сделать блок контента, заключенный в DIV, кликабельным. Эта затея отлично реализована на сайте веб-компании StudioForYou – этим приемом обеспечена кликабельность разноцветных блоков!

Итак, как же это делается?

HTML -код трюка:

<div onclick="location.href='Гиперссылка';" style="cursor: pointer;"></div>

Style-параметр превращает курсор мыши в привычный для гиперссылок «пальчик» при наведении на кликабельный DIV.

Делаем 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.

Увеличить зону кликабельности ссылки — HTML/CSS

enter image description here

Необходимо сделать ссылкой не только подзаголовок, но и саму картинку. Есть три способа три: назовем их хороший, плохой и злой.

Плохой

Просто обернуть и заголовок, и картинку в ссылку следующим образом:

Злой

Обернуть все в одну ссылку:

Хороший

Разместить ссылку в заголовке, а затем расширить область ссылки на всю карточку с помощь псевдоэлемента :before:

div  position: relative; > a:before  content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; > 

Можно использовать любой из этих трех способов, но лично я предпочитаю последний.

Как сделать блок кликабельным

нифига не происходит т.е. картинка не кликабельна, а в отладчике вижу вот что — вложение.
Что за чудеса? очему ссылка двоится и как все же сделать фон кликабельным?

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Как сделать HTML баннер кликабельным ?
Добрый день, помогите пожалуйста на сайте есть скользящий баннер, нужно его сделать кликабельным.

Как сделать так, чтоб при наведении на блок всплывал еще один блок?
Всем привет, подскажите пожалуйста как можно сделать вот такой блок .

Как сделать слайдер кликабельным?
Здравствуйте, помогите пожалуйста, тоже хотел сделать слайдер кликабельным, но не нахожу строк.

Как сделать код php кликабельным?
Имеется вот такой скрипт вывода аватарки пользователя и имени и фамилии,нужно сделать что бы этот.

529 / 384 / 247
Регистрация: 31.05.2016
Сообщений: 1,045

Dimon25, сделайте

a class="fon" href="http://site.ru">/a>

и обязательно в класс fon добавить display: block ;

Регистрация: 06.03.2017
Сообщений: 26
sash23 не получается.

1 2 3
a.fon { display:block; }
1 2 3 4
a class="fon" href="http://site.ru"> div class="fon"/div> /a>

если делать так, картинка удваивается, корзина сползает вниз на дубль, а вот верхняя, родная — становится кликабельной. Но без корзины )

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *