2013-09-04 4 views
1

Является ли это допустимым HTML?Проверка нулевой ссылки в HTML

<a href="#" id="whatever">Home</a> 

Я использую ID для вызова функции jQuery с идентификатором «что угодно». Я не могу найти ничего, что говорит, действительно ли это. У меня дебаты о том, есть ли это.

Кроме того, действительно ли HTML-код содержит группу переключателей без одного выбора?

+0

Я думаю, что там что-то другое спрашивается. Я хочу знать, соответствует ли # (null) для 'href' – sehummel

+0

. Ссылка имеет текст, в отличие от ссылки в другом вопросе. – sehummel

+1

Вы должны задать вопрос о переключателях отдельно, после проверки того, существуют ли ранее существующие вопросы. Вы должны задавать отдельные вопросы отдельно по многим причинам, в том числе тот факт, что многопроцессор не может иметь заголовок, который описывает все вопросы. –

ответ

0

Ваш HTML-код полностью действительный.

Подобно тому, как предложение, ваша функция JQuery должны предотвратить поведение по умолчанию вашего тега привязки:

jQuery("#whatever").click(function(evt) { 
    evt.preventDefault(); // Prevent the default anchor tag behavior 

    // Do what you need here 
}); 

Таким образом, вы будете предотвратить общее «прокрутку к вершине» поведение при использовании href="#".

+0

Вот что я подумал. Спасибо. – sehummel

+0

@sehummel Если вы собираетесь предотвратить поведение по умолчанию, вам не нужно ничего в атрибуте href, оно может быть пустым. Использование значения «#» href не позволяет ссылке вызвать HTTP-запрос, если JavaScript не работает, но если этот сценарий вызывает беспокойство, ссылки будут записаны для отказа в HTTP-запросах в любом случае. –

+0

@LeeKowalkowski согласно проекту HTML5 (http://www.w3.org/html/wg/drafts/html/master/links.html#hyperlink), не используя атрибут 'href', является допустимым, но он не" t создать гиперссылку: «Атрибут href для элементов a и area не требуется; когда эти элементы не имеют атрибутов href, они не создают гиперссылки ». –

1

Это действительно так, и необходимо, чтобы что-то в атрибуте href в большинстве браузеров, чтобы активировать поведение ссылки в элементе <a>. (хотя href="" заставляет браузер открывать индексную страницу текущей «папки».)

Если ссылка представляет собой некоторую смену состояния, тогда лучше разместить больше (например, «#home»), так что если пользователь нажимает назад/вперед/обновляется, вы можете восстановить состояние на загрузке страницы - это тоже благо во время разработки, если вы часто обновляете страницы во время их разработки.

-

Неотобранных группы радио являются более хитрые, HTML 4 валидаторов позволят ему пройти, но спецификация HTML 4 говорит один всегда должно быть проверены (Поскольку поведение агента пользователя отличается, авторы должны гарантировать, что в каждом наборе переключателей, которые изначально «включены».). HTML 5 смягчил это, насколько я знаю, поскольку я не могу найти эквивалентную формулировку в спецификации HTML 5.

Однако такая группа переключателей находится в недопустимом состоянии, поэтому ее нельзя использовать для записи необязательного ввода (если пользователь проверяет один, они не могут снять его).

Это лучше для пользователя, если было выбрано значение по умолчанию (как правило, наиболее частым выбора), или если оно не является обязательным, чтобы иметь явный вариант для нуля (например, «Ни один из вышеперечисленных»)

0

HTML-разметка действительна и соответствует спецификациям HTML, которые ссылаются на спецификации URI относительно значений атрибута href. Текущая авторитетная спецификация - RFC 3986, Унифицированный идентификатор ресурса (URI): общий синтаксис, также известный как стандарт STD 66 стандарта Internet. В соответствии с ним, а также устаревшие спецификации URI, # является ссылкой на один и тот же документ. Соответствующие предложения в спецификации - 3.5 и 4.4.

Таким образом, ссылка на href="#" означает пребывание в текущем документе без перезагрузки, но позиционирование документа при его запуске («переход к началу»). Таким образом, он не является no-op как таковым, хотя href="#" был использован, чтобы сделать элемент поддельной ссылкой, более или менее.

С другой стороны, элемент a без атрибута href также действителен. Это не будет рассматриваться как ссылка в визуальных визуализациях, сценариях, анализе ссылок и т. Д. Если это не означает ссылку, не делайте ее ссылкой.

Смежные вопросы