Теги и атрибуты заголовков H1-H6, горизонтальной линии Hr, переноса строки Br и абзаца P по стандарту Html 4.01

5 июля, 2011

Здравствуйте, уважаемые читатели блога KtoNaNovenkogo.ru. Сегодня мы начнем разговор про теги в языке Html, а именно про заголовки H1, H2, H3, H4, H5, H6, про абзацы P и переносы строки Br, а также про тэг горизонтальной линии Hr, на примере которого мы рассмотрим использование атрибутов и посмотрим, где можно будет узнать все возможные для каждого элемента атрибуты и подглядеть синтаксис значений для них.

В конце статьи про директивы Doctype и комментариев в ХТМЛ мы начали обсуждать тэги, коснулись такого понятия как блочные (block elements) и строчные элементы (inline elements). Строчные (текстовые) используются для оформления кусков текста, а блочные — для формирования структуры документа. Причем, есть важное правило языка гипертекстовой разметки — внутри строчных тегов блочных элементов находиться не должно.

Теги заголовков H1-H6, абзаца P и переноса строки BR


В той статье, где мы начали рассмотрение понятия блочных и строчных элементов, в качестве примера были приведены самые наглядные представители этих двух классов: Div и Span. Первый относится к блочным, а второй — к строчным. Т.о. внутри Div контейнеров можно будет добавлять Span, а наоборот уже нельзя.

Точнее можно, но это уже будет не валидная верстка, т.е. не соответствующая стандартам языка разметки, которые подробно описаны в валидаторе WC3).

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

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

Давайте теперь начнем планомерное изучение всех возможных тегов в Html и при этом будем обращать особое внимание на то, к какому именно типу они относятся, чтобы четко представлять для себя возможности их правильного (валидного) использования. Упрощенная структура тэга выглядит так:

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

Давайте начнем рассмотрение с такого понятия, как заголовки, которые формируются с помощью парных тэгов H1, H2, H3, H4, H5, H6 (название происходит от первой буквы слова «Header», т.е. «заголовок»). Они призваны отделять друг от друга различные фрагменты текста и помечать их важность в зависимости от уровня. В современной версии языка Html все теги и все допустимые для них атрибуты заранее оговорены и описаны.

Вследствие этого, уровней у заголовков может быть только шесть и, кроме этого, элементы H1-H6 являются блочными, т.е. стремятся занять все доступное место по ширине страницы. Но у них есть одна особенность — внутри тэгов заголовков могут находиться только строчные элементы, несмотря на то, что, например, все тот же Div позволяет включать внутри себя другие блочные тэги.

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

Заголовки разного уровня H1-H6 будут рисоваться в браузерах шрифтами разных размеров (хотя, используя CSS, вы можете задать им абсолютно любой размер, цвет и тип шрифта для отображения в браузере, но в чистом Html действуют именно такие правила):

Если рассматривать верстку сайта с точки зрения удобства его дальнейшего продвижения (Раскрутка и продвижение сайта самостоятельно), то стоит оговориться про то, что должен быть только один заголовок уровня H1 на странице. Наверное, можно использовать и два H1, но большее их количество скорее всего вызовет негативную реакцию у поисковых систем, когда они будут определять ее релевантность и проводить ранжирование вашего документа. Ваши действия могут быть расценены как спам или накрутка релевантности.

Также не рекомендуется пропускать уровни заголовков, т.е. после H1 следует использовать H2 для выделения менее важных кусков текста и т.д. Вряд ли это повлечет какие-либо серьезные санкции со стороны поисковиков, но все же лучше следовать логике в формирования уровней заголовков в Html коде.

Поисковые системы уделяют словам, заключенным в эти теги, бОльшее значение, чем словам, просто стоящим в тексте. Отсюда следует вывод, что при написании статей следует обязательно добавлять ключевые слова в используемые вами заголовки.

Ну, а само по себе использование заголовков в тексте статьи делает ее более наглядной и помогает читателям быстрее сориентироваться в наборе информации. Думаю, что на первое время информации будет достаточно и пора двигаться дальше.

Параграф, перенос строки и горизонтальная линия HR в Html коде

Тег P образуется от слова «paragraph», но чаще все же его называют абзацем. Они используются для смыслового выделения некоторого куска текста, включающего, как правило, несколько предложений. Между параграфами, образованными элементами P по вертикали, появляется пустое пространство, которое и позволяет отделить логические куски текста визуально друг от друга.

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

Разбивая текст вы сильно снижаете порог утомляемости посетителей вашего ресурса и улучшаете пользовательские факторы (время проведенное пользователем на вашем сайте и показатель отказов в статистике посещаемости сайта), которые в свою очередь положительно влияют на продвижение.

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

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

Так как P является блочным элементом и внутри него могут стоять только строчные. Следовательно, браузер, обнаружив открывающий тэг параграфа, разбирает код дальше и как только наткнется на следующий блочный элемент (скорее всего это будет следующий открывающий P), то тут же перед ним вставляет закрывающий тег абзаца. В стандарте Html 5 таких вольностей скорее всего уже не будет и нужно сразу привыкать закрывать все теги и писать их только строчными буквами.

Параграф представляет из себя блочный элемент, поэтому текст внутри абзацев будет стремиться занять все доступное ему место по ширине. Т.е., если вы в коде Html документа написали четверостишие так, как это и полагается (каждая строчка отдельно), и заключили это четверостишие целиком в теги абзаца P, то в браузере вы увидите, что все ваши четыре строки сольются в одну и будут занимать по ширине все доступное для текста пространство.

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

Ну, а если вам нужно будет действительно написать четверостишие в общепринятом виде, то можете для этой цели использовать дополнительные Html

теги переноса строки под названием BR

(от слова «break»):

BR является строчным элементом и к тому же «пустым», т.е. одиночным (не имеет закрывавшего элемента). Вся функция BR заключается в том, что он вызывает перенос строки при отображении текста в браузере (аналогичен клавише Enter в любом текстовом редакторе).

Написание тегов BR (переноса строки) в коде никак не регламентируется. Можно написать весь текст слитно и поставить вместо пробелов в нужных местах BR, а можно сразу для наглядности в коде уже разбить текст на строки и поставить BR либо в конце строк, либо в их начале. Сути это не меняет.

HR (аббревиатура от слов «horizontal rule», т.е. горизонтальная линия) — очень простой Html тег, который рисует горизонтальную линию (полоску) во всю ширину экрана и толщины, зависящей от того браузера, в котором она просматривается (по сути это визуальный маркер, который по аналогии с тэгами заголовков позволяет разбивать текст на логические куски для их более простого усвоения).

<hr>

Он является «пустым» (одиночным), т.е. не имеет пары (закрывающего тэга). Кроме этого, HR является блочным элементом, т.е. он занимает по умолчанию всю доступную ему ширину страницы.

Понятие атрибутов и правила их написания в Html тегах


Давайте на этом простом элементе рассмотрим такое понятие, как атрибут. Дело в том, что в теги мы можем добавлять допустимые и описанные в валидаторе WC3 для них атрибуты, тем самым придавая содержимому нужное нам свойство.

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

Итак, первое правило — атрибуты ставятся только в открывающем теге (закрывающий никогда ничего не содержит). В одном элементе может стоять несколько атрибутов, которые разделяются между собой и между названием тега пробелом (обязательное условие). Давайте я сразу приведу пример их использования для горизонтальной линии HR:

Итак, сначала давайте пробежимся по синтаксису атрибутов. Они вставляются в открывающий тэг, пишутся через пробел (в том числе пробел ставится и после имени элемента) и представляют из себя конструкцию, включающую название, знак «равно» и написанные в кавычках (обычно принято ставить парные двойные, но стандартом допускаются и парные одинарные кавычки) значения. Порядок следования атрибутов в Html коде тега не важен.

Тут возникает вопрос, а где можно узнать список допустимых атрибутов для какого-либо тега, который вас интересует, и узнать все возможные значения, которые могут быть использованы для него. Здесь нам поможет первая статья, в которой как раз и говорится о том, что такое язык ХТМЛ.

Там я приводил ссылку на список всех допустимых в Html тегов. Если в этом списке щелкните по названию интересующего вас элемента (в нашем случае это HR), то попадете на страницу с подробной спецификацией именно по нему:

Все атрибуты любого тега можно разделить на три группы:

  1. Общие — они могут стоять у подавляющего большинства элементов в языке Html. На приведенном чуть выше рисунке они находятся внизу и обведены красной рамочкой. Собственно, общих атрибутов немного (всего шесть), да и то, вряд ли вы будете использовать в своей практике все из них. Скорее всего только четыре — id, class, title и style.
  2. Атрибуты событий — они нужны, чтобы вызвать какое-либо действие в ответ на действие пользователя или на системное событие. Они имеют большее отношение к ДжаваСкрит и на приведенном чуть выше рисунке находятся в самом низу (обведены в темную рамочку).
  3. Уникальные — у каждого тега, как правило, имеется свой собственный набор атрибутов, некоторые из которых могут вообще не встречаться у других элементов. Если рассматривать горизонтальную линию HR, то у нее есть только четыре уникальных атрибута (align, noshade, size и width). Все остальные, указанные в тэге HR (кроме описанных чуть выше двух групп), будут браузером проигнорированы.

Примеры атрибутов в теге горизонтальной линии HR


В качестве значений различных атрибутов могут выступать как произвольные числа (пикселы, проценты и т.п.) так и значения из заранее оговоренного набора, например, как в случае align для HR — left|center|right (вы можете использовать один из трех вариантов выравнивания).

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

В этом списке перечислены все возможные варианты для всех имеющихся в языке Html тегов. В колонке «Related Elements» напротив интересующего вас варианта будут приведены элементы, в которых данный атрибут может быть использован. В колонке «Type» указан тип данных, которые могут быть использованы в качестве его значения.

Например, в подчеркнутой на рисунке строке для атрибута align, для тега HR, допустимо использование только трех фиксированных значений, которые там и перечислены (left | center | right).

Еще одной очень важной колонкой является «Depr». Если напротив интересующего вас атрибута в этой колонке стоит буква D, то его использовать не рекомендуется, а следует для его замены применять соответствующие CSS стили. При просмотре спецификации тэгов мы тоже видели, что рядом с названиями всех четырех атрибутов для HR написано слово «Deprecated» (не рекомендован к применению).

Давайте посмотрим, какие атрибуты используются с теми элементами, которые мы уже успели рассмотреть в этой статье (P, заголовки H1-H6 и HR). Для всех них можно использовать «align», т.к. все эти элементы являются блочными. Для строчных элементов атрибут выравнивания по ширине «align» теряет смысл.

Например, если вы добавите «align» в тег заголовка (например, H1), то сможете задать выравнивание текста заголовка. Т.е. блочный элемент будет занимать все доступное ему пространство по ширине, но содержимое этого заголовка (его текст) может быть выравнен либо по левому краю (left — используется по умолчанию), либо по правому краю (right), либо по центру (center), либо по ширине (justify — изменяется расстояние между словам, как в газетных колонках).

Тоже самое, кстати, будет справедливо и для Html тега абзаца P и для контейнера Div, если вы внимательно посмотрите на приведенный скриншот.

Для горизонтальной линии HR атрибут «align» будет означать выравнивание самой горизонтальной строки, образованной этим элементом. Но тег HR является блочным элементом и стремится занять по ширине все доступное пространство. Следовательно, имеет смысл использовать «align» в нем только в том случае, если вместе с ним вы задали значение для атрибута «width» (ширина) меньшее ширины страницы.

В качестве значения для «width» можно использовать просто цифры (это будет задаваться ширина в пикселах), либо можно использовать проценты от общей доступной для горизонтальной линии HR ширины. Значение атрибута «size» для этого же тэга задается в цифрах, обозначающих высоту горизонтальной линии в пикселах. Давайте рассмотрим это на примере:

<hr align="center" width="40%" size="10">

У тэга HR в стандарте Html 4.01 есть еще один атрибут, который называют одиночным, т.к. он не может принимать никаких значений (он просто означает какое-то действие) — это «noshade», который запрещает горизонтальной линии отбрасывать тень:

<hr align="center" width="40%" size="10" noshade>

Понятно, что все возможные атрибуты для всех возможных тегов в Html мне рассмотреть не удастся, да этого и не требуется, ибо все можно делать по аналогии — главное, понять синтаксис и саму идею. К тому же многие из них уже стали не рекомендованными к использованию, т.к. сейчас их функцию выполняют CSS стили, о которых мы тоже очень скоро начнем подробно говорить.

Удачи вам! До скорых встреч на страницах блога KtoNaNovenkogo.ru

Подборки по теме:

Комментарии и отзывы

Андрей

почему вы делаете такие длинные посты этот например 14000!!! символов.

Это как нибудь влияет на количество посетителей?очень интересно.

Дмитрий

Андрей: судя по счетчику влияют, т.к. все посты у меня длинные. Трудно писать кратко и чтобы одновременно было понятно, во всяком случае для меня.

Стас

Пусть хоть 28к символов, лишь бы была полезная информация без воды, собственно как у ТС.

ПС: большие посты хорошо читаются с кофе;)

Дима

По мне, лучше в разы меньше, но лучше. Ни один ваш пост полностью не прочитал. Реально, слишком много текста. Если слить воду, то станет в разы меньше.

Дмитрий

Дима; ну, где-то можно было бы и слить воду, но в этой статье ее нет. Иначе начинающему изучение основ будет не совсем понятно откуда у языка гипертекстовой разметки ноги растут. Я лично тоже большинство статей не прочитываю, а пролистываю, но короткие постики сразу закрываю, даже не просматривая. ИМХО.

Олег

Не совсем понятна ситуация с тегом br. Как же все таки правильно его писать , или с косой чертой ?

Андрей

Дмитрий, а как поисковики относятся к применению тега переноса внутри заголовка? Например:

<h1> Мама мыла <br> раму>
. Иногда бывает необходимо сделать длинный заголовок в 2 строки.

Артем

+1 в Гугл от меня

Хотя новость даже не читал 🙂

loki

Не знаете, как ПС относятся к пустым

<p></p>
, стоит ли их заменять на несколько ?

Сергей

Здравствуйте скажите может быть текст одинаковый и в title и в h2 или всётаки должен быть немного изменен

Дмитрий

Здравствуйте! А если использовать такую конструкцию Текст

она будет учитываться поисковиками?

Татьяна

Дмитрий, здравствуйте! Скачала ваши видео уроки по основам Html, пытаюсь открыть — ничего не получается.

Я чайник, да еще возрастной. Уроки мне очень помогут. Стала постоянным вашим читателем и учеником.

Alex777go

Добрый день,

Как мне изменить заголовки Н1,Н2,H3 на моем сайте, желательно не особенно влазить в исходный код сайта. У меня на данный момент вот такая ситуация https://lh4.googleusercontent.com/-EBmFj8Wr3jQ/Uv4NmyLe8SI/AAAAAAAABcA/e5qQdiaMLbs/w788-h709-no/2014-02-14_143338.jpg, как сделать правильно и не повлияет ли изменение заголовков на падение количества трафика?

Какой плагин или как вы устанавливаете рекламу на страницы блога ?

И как создать такой заголовок и где его можно вставить ? — https://lh6.googleusercontent.com/-KnDK-V16dNA/Uv4WLH2u6OI/AAAAAAAABcc/zHdR_TU-jB4/w1116-h113-no/2014-02-14_151151.jpg

Подписаться не комментируя