Я закодировал пользовательский лайтбокс для отображения изображений. После щелчка изображения и открытия лайтбокса, я хотел бы, чтобы описание для этого изображения появлялось. Я пытаюсь сохранить описание самым чистым, самым правильным и правильным способом, но я не могу решить, что я должен делать.
Я рассмотрел использование пользовательских атрибутов данных, но нашел следующее:
"Атрибуты пользовательских данных предназначены для хранения конфиденциальных данных на странице или приложении, для которых нет более подходящих атрибутов или элементов".
Итак, data-picinfo или какое-то другое настраиваемое поле данных похоже, что это может быть неприемлемо? Или это вполне уместно, так как мое приложение лайтбокса будет обращаться к необходимым полям данных, чтобы отобразить правильную информацию?
<img src="exampleimage.jpg" width="140" height="105" name="cool-image" data-picinfo="this was a beautiful day hiking the mountains"/>
Какой лучший и самый правильный способ выполнить то, что я пытаюсь сделать?
Я бы использовал атрибут "alt" для описания изображений. Alt-текст не только гарантирует, что тег изображения соответствует стандартам W3C для доступности, но также предназначен именно для того, что вы пытаетесь выполнить.
Пример:
<img src="exampleimage.jpg" width="140" height="105" name="cool-image" alt="this was a beautiful day hiking the mountains" />
В этот момент вы можете сохранить это описание для отображения позже в переменной javascript следующим образом:
var imgDescription = document.getElementsByTagName('img')[0].getAttribute("alt");
Надеюсь, это поможет!
С технической стороны атрибут title
ближе всего к "описанию". Но что действительно важно, какая информация у вас есть, как вы собираетесь использовать ее и может ли она быть полезной помимо вашего особого использования.
Существует также обсуждаемый, мало используемый атрибут longdesc
который должен предоставить ссылку на "длинное описание", но главным образом для целей доступности (особенно для людей, которые вообще не видят изображение), и он не включен в HTML5 CR.
alt
по определению определяет контент, который будет отображаться (например, в речи или шрифте Брайля), когда изображение не отображается, а не описание изображения. Например, для чисто декоративного изображения достаточно alt=""
; описание будет чем-то совершенно другим.
Из того, что вам нужно, я думаю, что нет более чистого способа сделать это, и ваш лайтбокс должен получить описание из другого атрибута, такого как название данных
<img src="exampleimage.jpg" width="140" height="105" name="cool-image" data-title="this was a beautiful day hiking the mountains" />
как эта помощь :)