Тег p

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

Тег p

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

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


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

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

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

Тег p

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

Тег p

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

Тег p

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


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

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

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

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


Тег p

Тег p

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

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

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

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


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

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

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

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

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

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


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

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

Тег p

Тег p

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

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

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

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


Тег p

Тег p

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

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

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

<hr>

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

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


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

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

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

Тег p

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


Тег p

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

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

Тег p

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

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

  3. Уникальные — у каждого тега, как правило, имеется свой собственный набор атрибутов, некоторые из которых могут вообще не встречаться у других элементов. Если рассматривать горизонтальную линию HR, то у нее есть только четыре уникальных атрибута (align, noshade, size и width). Все остальные, указанные в тэге HR (кроме описанных чуть выше двух групп), будут браузером проигнорированы.

ktonanovenkogo.ru

Поддержка браузерами

Описание

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


Для определения абзаца в HTML-документе используется тег <p> (p — сокращение от англ. слова paragraph — абзац). При отображении тега <p>, браузер автоматически вставляет до и после него отступы, отделяя его, таким образом, от других элементов, размер отступов можно изменить с помощью стилей CSS. Для разрыва строки внутри абзаца используется тег <br>.

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

Примечание: cтоит обратить внимание на то, что все пробелы поставленные между открывающим тегом <p> и его содержимым будут игнорироваться браузером, также как и все пробелы между содержимым и закрывающим тегом </p>. Поэтому, такую банальную вещь, как красная строка, не получится сделать лишь поставив несколько дополнительных пробелов перед текстом, но с этой проблемой легко будет справиться с помощью CSS свойства text-indent, которое позволяет не только задать красную строку, но и точно определить размер отступа для нее.

Атрибуты

Тег <p> поддерживает Глобальные атрибуты и События

Стиль по умолчанию

  p {   display: block;   margin-top: 1em;   margin-bottom: 1em;   margin-left: 0;   margin-right: 0;  }   

Пример

  <p>Этот текст находится в абзаце.</p>  <p>Это второй абзац на странице.</p>  <p>А это третий абзац.</p>  

Результат данного примера в окне браузера:

Пример использования тега <p>

puzzleweb.ru

Атрибуты

Личные атрибуты:

  • align — Устанавливает горизонтальное выравнивание содержимого параграфа.

Общие атрибуты:

  • accesskey — устанавливает клавишу быстрого доступа для фокусировки на HTML-элементе.
  • class — задает имя класса или классов тега, используемых в CSS (Каскадные таблицы стилей).
  • dir — указывает направление текста внутри элемента.
  • id — задает имя идентификатора HTML-тега, который может использоваться в качестве «якоря» или в таблицах стилей.
  • lang — указывает язык, на котором написан текст внутри HTML-элемента.
  • style — необходим для применения встроенных стилей CSS к тегу.
  • tabindex — устанавливает порядок табуляции между элементами (клавиша Tab).
  • title — выводит всплывающую подсказку при наведении курсора мыши на HTML-элемент.

Тип тега

Назначение: текст (блоки).

Модель тега: block (блочный, уровня блока).

Может содержать: inline-теги, обычный текст и спецсимволы HTML (мнемоники).

Открывающий тег: необходим. Закрывающий тег: не обязателен.

Синтаксис

<p>содержимое</p>

Пример HTML: применение тега P

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html>  <head>  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  <title>seodon.ru - Применение тега P</title>  </head>  <body>  <p>Одной из ошибок начинающих создателей сайтов является использование неоднородных  изображений или ярких цветов для фона текстовой информации на странице.  Это не только затрудняет чтение, но и пагубно влияет на зрение пользователей,  заставляя их всматриваться в каждую строчку и излишне напрягать глаза.</p>  <p>Еще одна ошибка — это использование «где ни попадя» инвертированных цветов, когда   визуально цвет текста светлее фона, например черный фон — белый текст. Данная  техника вполне применима, но только там, где это действительно к месту.</p>   </body> </html>

Результат примера

Поддержка версиями HTML

Версия: HTML 4.01 HTML 5 XHTML 1.0 XHTML 1.1
Поддержка: Да Да Да Да

spravka.seodon.ru

Парные и одиночные, блочные и строчные HTML теги: p, br, hr

Как вы, наверное, уже поняли из предыдущих публикаций на блоге, тег является основной структурной единицей языка гипертекстовой разметки HTML (Hyper Text Markup Language). По большому счету именно совокупность тегов определяет html код, который описывает тот или иной документ (например, одну из страниц вашего ресурса).

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

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

«>

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

«>

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

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

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

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

<p>  HTML теги  Тег p - блочный элемент  Содержание тега p  </p>

«>

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

<p>  HTML теги<br>  Тег p - блочный элемент<br>  Содержание тега p  </p>

«>

Написание тегов br практически свободно. То есть вы можете сразу выделить несколько строк и в конце каждой из них поставить данный тег, а можно просто написать текст обычным способом и в места предполагаемых переносов вставить br. Количество строчных элементов br, включенных в содержание блочного тега p может быть сколько угодно большим. То есть сколько угодно текста можно написать с новой строки.

Теперь посмотрим еще на один простой тег, о котором подробнее поговорим в конце статьи. Речь о теге hr (от английского «horizontal rule» — горизонтальная линия), который является одиночным, но одновременно блочным, поскольку по умолчанию занимает всю возможную ширину. Он описывает простую горизонтальную линию, которая бывает полезной при разделении контента страницы на логические части. Это может быть разделение текста, групп изображений либо каких-то других составных частей дизайна.

<hr>

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

Атрибуты HTML тегов и их классификация

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

Почти у каждого атрибута есть свое значение (параметр). В общем виде любой одиночный или парный тег можно представить схематически в следующем виде:

«>

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

Естественно, в случае одиночного элемента закрывающий тег будет отсутствовать. Все атрибуты и их значения прописываются внутри открывающего тега и обязательно через пробел, иначе соответствующая область в браузере будет отображаться некорректно. Да, чуть не забыл, некоторые атрибуты могут быть без значений. Конечно, все теги в сочетании со всеми возможными атрибутами разобрать невозможно, да это и неважно, главное, понять механизм их применения. На официальной странице Международного Консорциума W3C вы можете изучить все рекомендуемые html теги.

Правда, там данные, соответствующие официально действующим стандартам html 4.01. Однако быстрыми темпами происходит внедрение версии html 5, по правилам которой уже играют популярные браузеры. А в новой версии языка гипертекстовой разметки некоторые теги и атрибуты уже будут невалидными, то есть не соответствующие стандартам html. Поэтому будем идти в ногу со временем и я вам буду предлагать в будущем только валидные теги и атрибуты, также в дальнейшем научимся избегать несоответствия нормам кода html, применяя стили css, материалы на эту тему появятся очень скоро.

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

«>
Все атрибуты элементов можно распределить на три группы:

  1. Группа универсальных атрибутов — они применяются практически ко всем html тегам. На скриншоте выше они выделены в зеленую рамку
  2. Уникальные атрибуты — присущие только данному элементу набор атрибутов (для тега hr на рисунке они подчеркнуты фиолетовым: align, noshade, size, width). В спецификацию html 5 добавлен новый атрибут color, который определяет цвет горизонтальной линии.
  3. События — эти атрибуты нужны, когда требуется какое-либо действие в ответ на действие пользователя. На скриншоте они выделены в синюю рамку.

Информацию об атрибутах можно также получить на другой страничке W3C, где приведена таблица с полным списком html атрибутов:

«>

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

Если в колонке «Dept» проставлена буква D, то такой атрибут использовать не рекомендуется, иначе html документ не пройдет валидацию. В этом случае необходимо использовать стили css, изучением которых, как я уже отмечал, займемся в недалеком будущем. Это просто необходимо, поскольку тенденция такова, что большинство атрибутов в версии html 5 не рекомендованы для использования и внешний вид элементов следует определять, применяя css.

Кстати, абсолютно полная информация с добавленными тегами и их атрибутами по версии html 5 представлена на одном из лучших, на мой взгляд, ресурсов, посвященных изучению основ html, а именно на htmlbook, причем на русском языке.

Как отобразить горизонтальную линию с помощью тега hr

Будем действовать поступательно. Элемент hr без атрибутов определяет простую горизонтальную линию, которая занимает все пространство по ширине (смотрите пример выше). Последовательно применяя различные атрибуты для тега hr, будем изменять внешний вид горизонтальной линии.

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

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

<hr align="center" width="350px" size="10">

«>

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

<hr align="center" width="350px" size="10" noshade>

«>

Теперь попробуем добавить атрибут color, который определит цвет горизонтальной линии. Замечу, что использование этого атрибута автоматически запрещает трехмерные эффекты, поэтому использование noshade не требуется. В качестве значения ставим название цвета, например, «blue».

<hr align="center" width="350px" size="10" color="blue">

«>

Итак, на конкретном примере p, br, hr мы рассмотрели, как теги html, а также используемые различные атрибуты, влияют на формирование различных элементов на вебстранице. Вскоре я опубликую продолжение данной темы, поэтому для получения новых материалов не забудьте подписаться на обновления блога через RSS-ленту либо посредством электронной почты. Засим разрешите откланяться с наилучшими пожеланиями.

goldbusinessnet.com


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Adblock
detector