2010-05-06 2 views
1

Какой лучший способ использования изображения в качестве ссылки ..Какой лучший способ использования изображения в качестве ссылки

<A HREF="javascript:password()"> 
<IMG SRC="pict1.gif" NAME="pic1" ALT="about us!" BORDER="0" align="left"></A> 

или то же самое, используя OnClick в IMG тег ?? Какой из них желательно? Оба одинаково хороши в использовании?

ответ

1

Есть три распространенных методов:

  1. a с href="javascript:whatever()"
  2. a с
  3. img с onclick="whatever()"

(1) и (2) будет создавать штриховой фокус границы вокруг изображения при щелчке, иногда это нежелательно.

(1) и (2) добавляет границу вокруг изображения того же цвета, что и ссылки в документе, поэтому вы можете установить border = 0.

(1) и (2) отобразит указатель руки на мыши.

(3) не ведет себя ничего похожего на ссылку ... без границы фокуса, без ссылки цвета borderm no hand pointer, ничего не отображается в строке состояния при наведении указателя мыши.

Лично я бы выбрал вариант 3: используйте тег a для ссылок, которые доставят вас где-нибудь, не используйте их в качестве кнопок действий.

+0

большое спасибо. но с учетом ответов, которые у меня есть на этот вопрос. Я чувствую, что нет такого типа стандарта, который мог бы быть приемлемым для всех. Я имею в виду его, как наш выбор того, что мы используем в этом случае? ? – Sachindra

+0

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

+0

отлично. благодаря тонну... – Sachindra

1

Я поклонник хорошей семантики. <a> был разработан, чтобы быть ссылкой, поэтому я советую использовать его: D

0

Использование a-тега, вы можете сделать код работающим, если у пользователя нет встроенного javascript! Поэтому я бы пошел за тегом, но также помню, что вы могли бы использовать jQuery или подобное, чтобы получить эффект javascript при нажатии на ссылку.

+0

Учитывая это значение 'href', это действительно не будет работать с js disabled anyway –

+0

Не этот код нет, но это может быть ссылка на тот же ресурс или действие. Все зависит от того, как оно создано! –

0

Я бы пошел с якорем (A тег), запретив действительно вескую причину сделать что-то еще. Связывание - это то, что якоря - это для, и поэтому вы получаете преимущества доступности и т. Д.

4

Я буду звонить вместе с остальными, что вы всегда должны использовать семантический подход. Если посмотреть на значение href, тем не менее, похоже, что вы на самом деле не связываете с чем угодно, но ваш тег a выполняет действие.

В этом случае вы используете якорь, как если бы это была кнопка, и семантика вообще потеряна. Я бы с кнопкой изображения:

<input type="image" src="pict1.gif" onclick="password();" /> 

Одним из примеров того, почему вы хотите, чтобы заботиться о семантике (по общим причинам SEO исключением) является то, что вы сообщаете браузеру, как к тому, что происходит. Например, кнопка изображения, как в приведенном выше коде, или изображение в якоре, как в вашем вопросе, приведет к тому, что на изображении будет отображаться курсор pointer, тогда как вам придется явно стилизовать это поведение, если вы пошли с простое решение img onclick, эффективно реплицирующее то, что браузер может обрабатывать изначально.

1

Для доступа вы должны использовать якорный тег. Вы можете стилизовать его для отображения изображения т.е.

<style> 
    a.image {display:block; background-image: url('images/mypic.gif')} 
</style> 

<a class='image' href='acme.html' style=></a> 

(Это, возможно, потребуется ширину и высоту, а)

Кроме того, JQuery обеспечит истинное разделение задач следует, что вам нужно добавить дополнительную обработку в щелчок. (Пожалуйста, не пламя о OP не используя JQuery, я представить его здесь в качестве подхода, поскольку вопрос немного субъективны и о наилучшей практике)

$(document).ready(function() { 

    $(a.image).click(function(e) { 
    password(); 
    e.preventDefault(); 
    }); 
}); 
+0

Люди с отключенным CSS не видят изображения, поэтому лучше использовать img-тег внутри. –

+0

№ Css обычно не отключается. Вы думаете о Javascript. Лучшая оценка заключается в том, чтобы поместить стили в отдельный файл, но я объединил их здесь для краткости. –

0

Я отговорить обоих подходов. Логика, представление и структура всегда должны быть раздельными. Сделайте это вместо того, чтобы:

myClickable.addEventListener('click', password, false); 
0

, если его просто ссылку, то якорь будет хорошо работать для вас, но кнопка будет лучше, если у вас есть какая-либо операция будет сделано, и не только переназначение.

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