Как Вы, возможно, помните, тэги это метки, указывающие браузеру, как нужно представлять ваш web-сайт. (Например, <br>
информирует браузер, что нужно сделать перевод строки). В некоторых тэгах вы можете вводить дополнительную информацию. Такая дополнительная информация называется "атрибут".
Атрибуты тегов - это дополнительные значения, которые расширяют возможности отдельных тегов и позволяют более гибко управлять содержимым контейнеров; настраивают элементы или регулируют их поведение различным способом, чтобы соответствовать критериям пользователей.
Форма записи
В общем случае тег записывается следующим образом:
<имя-тега атрибут1="значение1" атрибут2="значение2" ...>
Атрибутов может быть несколько, вот примеры:
<p class="important">...</p>
<a class="external" href="https://htmlacademy.ru">...</a>
<img class="avatar" src="keks.png">
Любые атрибуты нечувствительны к регистру, пишутся внутри открывающего тега и содержат имя и значение. В именах атрибутов нельзя использовать пробелы, кавычки, знак больше (>), слэш (/) и равно (=), а также любые символы не определенные в Юникоде. В значениях атрибутов допустимо писать текст и спецсимволы за исключением амперсанда (&), который должен заменяться на &
.
Каждый атрибут тега относится к определенному типу (например: текст, число, путь к файлу и др.), который обязательно должен учитываться при написании атрибута. Так, упоминаемый ранее тег <img>
, добавляет на веб-страницу рисунок, а его атрибут width задает ширину изображения в пикселах. Если поставить не число, а нечто другое, то значение будет проигнорировано и возникнет ошибка при валидации документа.
Различают несколько способов написания атрибутов и их значений.
Значение по умолчанию
Когда для тега не добавлен какой-либо допустимый атрибут, это означает, что браузер в этом случае будет подставлять значение, заданное по умолчанию. Если вы ожидали получить иной результат на веб-странице, проверьте, возможно, следует явно указать значения некоторых атрибутов.
Порядок атрибутов в тегах
Порядок атрибутов в любом теге не имеет значения и на результат отображения элемента не влияет. Поэтому теги вида <img src="/images/title.gif" width="438" height="118">
и <img height="118" width="438" src="/images/title.gif">
по своему действию равны.
Атрибуты без значений
Допустимо использовать некоторые атрибуты у тегов, не присваивая им никакого значения. Например
<input disabled>
<input disabled="" >
<input disabled="disabled">
Этот атрибут(disabled
) не имеет значения, поведение тега определяет лишь наличие этого атрибута. Если такой атрибут указан, подразумевается, что установлено значение «истина», а отсутствие атрибута означает «ложь». Само значение можно не указывать, достаточно написать один лишь атрибут. Также разрешается в качестве значения писать пустую строку или имя атрибута.
Браузеры включают атрибут даже при наличии недопустимых значений вроде true или 1. Но лучше избегать таких решений, поскольку они противоречат спецификации HTML5 и не гарантируют правильную работу.
Значение без кавычек
Значение пишется непосредственно после знака равно идущим вслед за именем атрибута. До и после знака равно можно вставлять любое количество пробелов или обойтись без них.
<img src=link.html alt=Картинка>
Здесь атрибутами являются src
и alt
, а после знака = идёт их значение без кавычек. Поскольку атрибуты разделяются между собой одним или несколькими пробелами, то при отсутствии кавычек легко допустить ошибку, когда браузер воспримет предлагаемое нами значение как атрибут.
<img src=link.html alt=Картинка в тексте>
Здесь значением атрибута alt
будет слово «Картинка», остальные слова воспринимаются как неверные атрибуты.
Использование двойных кавычек
Значение берётся в двойные кавычки, обычно такая форма указывается для текста.
<input type="checkbox" >
Использование одинарных кавычек
Вместо двойных кавычек также допустимо писать одинарные.
<input type='checkbox' >
Значения атрибутов разделяются между собой пробелом, поэтому если у вас в качестве значения указывается предложение, обязательно берите его в одинарные или двойные кавычки.
В основном принято писать значения атрибутов тега в двойных кавычках, но допускается и иная форма записи. Опять же повторюсь - пишите значение атрибутов в двойных кавычках.
Кавычки внутри значений
Внутри значений атрибутов не разрешается применять те же кавычки, в которых взято само значение. Но допустимо сочетать разные типы кавычек между собой. Если внутри текста необходимы одинарные кавычки или апостроф, то сам текст следует взять в двойные кавычки.
<img src="r.jpg" alt="Город Р'льех" >
Соответственно, текст содержащий внутри двойные кавычки надо взять в одинарные.
<img src='c.jpg' alt='Такой вид кладки называется "циклопическим"' >
Также вместо двойной кавычки в тексте можно использовать спецсимвол "
, а вместо апострофа — '
.
Атрибуты data-*
В HTML5 для любого элемента можно использовать собственные атрибуты, начинающиеся с префикса data-. Это позволяет хранить разную информацию, которая может помочь в работе скриптов, а также для оформления элементов через CSS.
Атрибут должен иметь хотя бы один символ в нижнем регистре. Буквы в верхнем регистре хотя и допустимы, но они принудительно будут переведены в нижний регистр, поэтому не дают никакого эффекта. В именах атрибутов можно использовать дополнительные дефисы, как показано в примере
<ul>
<li data-damage-resistance="40" data-weight="45"
data-effect="+10 Сопротивляемость радиации">
Силовая броня Клёна</li>
<li data-damage-resistance="40" data-weight="45"
data-effect="+15 Сопротивляемость радиации">
Силовая броня Анклава</li>
<li data-damage-resistance="50" data-weight="40"
data-effect="+25 Сопротивляемость радиации">
Силовая броня T-51b</li>
</ul>
Сами атрибуты никак не выводятся в браузере, поэтому мы увидим обычный список.