2016-04-25 6 views
1

Мне нужно подготовить семинар для начинающих, и поэтому я наткнулся на следующее.Являются ли атрибуты частью HTML-элемента тега?

Если у меня есть ...

<p>This is a text-node.</p> 

... то < р > и </р > теги. Все это «<p> Это текстовый узел. </p > "является элементом.

До сих пор так хорошо.

Но когда у меня есть атрибуты, такие как '< p class = "foobar" > Это текстовый узел. </p > '...

Является ли атрибут частью тега?

Знаки: Тег - это все, от открытия кронштейна до закрывающей скобки, включая атрибуты? Или у меня что-то не так? Тогда, пожалуйста, поправьте меня.

+0

Вы правы, но справедливо предупредить ваш класс, что слово «тег», вероятно, используется неправильно чаще, чем оно используется правильно (обычно там, где правильный термин является «элементом»). –

+0

@MichaelKay То, что вы пишете об использовании обеих сторон, безусловно, соответствует моему опыту. Спасибо за подсказку. :) –

ответ

0

Ваше понимание неверное. Атрибуты, объявленные в начальном теге, являются частью стартового тега. Это справедливо и для HTML, и для XML.

Чтобы быть ясным, сами атрибуты относятся к элементу, а не к тегу, поскольку тег является просто объявлением элемента, если вы хотите (из-за отсутствия лучшего термина). Тем не менее, нотация attr=value действительно является частью стартового тега.

Для целей вводного семинара различия в атрибутах не так важны. Что более важно (и я имею в виду очень) - это различие между элементами и тегами.

1

Исправить. Тег - это все между < и сразу после />. Таким образом, часть class="foobar" действительно находится внутри вашего тега абзаца.

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

MDN говорит:

[Атрибуты] дополнительные значения, которые настраивают элементы или изменить их поведение в различных способах удовлетворения критериев пользователи хотят.

Так что в вашем случае class="foobar" говорит, что этот конкретный p тег имеет класс по имени «Foobar».

Что такое class?

Атрибут класса global - это список классов элементов, разделенных пробелами. Классы позволяют CSS и Javascript выбирать и получать доступ к определенным элементам.

Так что это значит? Рассмотрим следующее:

<p>This is a text-node.</p> 
<p class="foobar">This is another text-node.</p> 

Указанная надпись имеет 2 элемента абзаца. Давая один из них атрибут class, я могу позже указать, какой именно тег абзаца или набор тегов абзаца я хочу дать особое поведение (например, цвет). Полезность этого становится более очевидной, так как ваша разметка становится очень большой.

Надеюсь, это немного прояснит ситуацию.

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