Как сделать целое «div» кликабельным в html и css без JavaScript?

Вопрос:Я хочу сделать так, чтобы целой div был доступен клиенту и ссылки на другую страницу при нажатии без JavaScript и с допустимым кодом/разметкой. Если у меня есть это, что я хочу получить результат - This is a link Валидатор W3C говорит, что элементы блока не должны размещаться внутри встроенного элемента. Есть ли

Вопрос:

Я хочу сделать так, чтобы целой div был доступен клиенту и ссылки на другую страницу при нажатии без JavaScript и с допустимым кодом/разметкой.

Если у меня есть это, что я хочу получить результат –

<a href=»#»> <div>This is a link</div> </a>

Валидатор W3C говорит, что элементы блока не должны размещаться внутри встроенного элемента. Есть ли лучший способ сделать это?

Лучший ответ:

целые div-ссылки на другую страницу при нажатии без javascript и с допустимым кодом, возможно ли это?

Педантичный ответ: Нет.

Как вы уже добавили другой комментарий, он недействителен, чтобы вставить div внутри тега a.

Однако ничего не мешает вам сделать тэг a очень похожим на div, за исключением того, что вы не можете вложить в него другие теги блока. Если это соответствует вашей разметке, установите display:block в свой тег a, а размер /float, как вам нравится.

Если вы откажетесь от своего вопроса, что вам нужно избегать javascript, как указывали другие, вы можете использовать обработчик события onClick. jQuery – популярный выбор для упрощения и обслуживания.

Ответ №1

Можно сделать ссылку, заполняющую весь div, что дает возможность сделать div интерактивным.

CSS

#my-div { background-color: #f00; width: 200px; height: 200px; } a.fill-div { display: block; height: 100%; width: 100%; text-decoration: none; }

HTML:

<div id=»my-div»> <a href=»#» class=»fill-div»></a> </div> Ответ №2<div onclick=»location.href=’#’;» style=»cursor: pointer;»> </div> Ответ №3

Без JS я делаю это так:

Мой HTML:

<div class=»container»> <div class=»sometext»>Some text here</div> <div class=»someothertext»>Some other text here</div> <a href=»#» class=»mylink»>text of my link</a> </div>

Мой CSS:

.container{ position: relative; } .container.a{ position: absolute; top: 0; left: 0; width: 100%; height: 100%; text-indent: -9999px; //these two lines are to hide my actual link text. overflow: hidden; //these two lines are to hide my actual link text. } Ответ №4

Мое решение без JavaScript/изображений. Используется только CSS. Он работает во всех браузерах.

HTML:

<a class=»add_to_cart» href=»https://www.redracingparts.com» title=»Add to Cart!»> buy now<br />free shipping<br />no further costs </a>

CSS

.add_to_cart:hover { background-color:#FF9933; text-decoration:none; color:#FFFFFF; } .add_to_cart { cursor:pointer; background-color:#EC5500; display:block; text-align:center; margin-top:8px; width:90px; height:31px; border-radius:5px; border-width:1px; border-style:solid; border-color:#E70000; }

Есть пример на

Ответ №5

Элементы уровня блока вложения в якорях не являются недопустимыми больше в HTML5. См. http://html5doctor.com/block-level-links-in-html-5/ и http://www.w3.org/TR/html5/the-a-element.html.
Я не говорю, что вы должны использовать его, но в HTML5 отлично использовать <a href=»#»><div></div></a>.

Принятый ответ в противном случае является лучшим. Использование JavaScript, как и других, также плохо, потому что это сделает “ссылку” недоступной (для пользователей без JavaScript, включая поисковые системы и другие).

Ответ №6

jQuery позволит вам это сделать.

Найдите функцию click():
http://api.jquery.com/click/

Пример:

$(‘#yourDIV’).click(function() { alert(‘You clicked the DIV.’); }); Ответ №7

Ну, вы можете добавить тэги <a></a> и поместить в него div, добавив href, если вы хотите, чтобы div действовал как ссылка. Или просто используйте Javascript и определите функцию OnClick. Но из приведенной ограниченной информации немного сложно определить, в чем заключается контекст вашей проблемы.

Ответ №8.clickable { cursor:pointer; } Ответ №9

Что-то вроде этого?

<div onclick=»alert(‘test’);»> </div> Ответ №10

AFAIK вам понадобится хотя бы немного JavaScript…

Я бы предложил использовать jQuery.

Вы можете включить эту библиотеку в одну строку. И затем вы можете получить доступ к своему div с помощью

$(‘div’).click(function(){ // do stuff here });

и ответьте на событие click.

Ответ №11

мы используем как это

<label for=»1″> <div class=»options»> <input type=»radio» name=»mem» id=»1″ value=»1″ checked=»checked»/>option one </div> </label> <label for=»2″> <div class=»options»> <input type=»radio» name=»mem» id=»2″ value=»1″ checked=»checked»/>option two </div></label>

используя

<label for=»1″>

Тег

и ловкость –

id=1

надеюсь, что это поможет.

Оцените статью
Добавить комментарий