HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <ul><li><a>Назначение и параметры</a></li>
1 <ul><li><a>Назначение и параметры</a></li>
2 <li><a>Инициализация и настройка</a></li>
2 <li><a>Инициализация и настройка</a></li>
3 <li><a>Прочие способы создания</a><ul><li><a>HTML, CSS и PHP</a></li>
3 <li><a>Прочие способы создания</a><ul><li><a>HTML, CSS и PHP</a></li>
4 <li><a>Сервисы для отправки анкеты обратной связи</a></li>
4 <li><a>Сервисы для отправки анкеты обратной связи</a></li>
5 <li><a>Ссылка для отправки</a></li>
5 <li><a>Ссылка для отправки</a></li>
6 </ul></li>
6 </ul></li>
7 <li><a>Некоторые опции и функции</a></li>
7 <li><a>Некоторые опции и функции</a></li>
8 </ul><p>HTML (или HyperText Markup Language) - это стандартизированный язык гипертекстовой разметки документов, который используется для отображения и просмотра веб-сайтов в браузерах. Интернет-обозреватели будут получать HTML-файлы от серверов при помощи протоколов HTTP/HTTPS, а также открывать их с локальных дисков. Далее осуществляется интерпретация кода в готовый интерфейс. Это то, что будет отображаться на экране устройства.</p>
8 </ul><p>HTML (или HyperText Markup Language) - это стандартизированный язык гипертекстовой разметки документов, который используется для отображения и просмотра веб-сайтов в браузерах. Интернет-обозреватели будут получать HTML-файлы от серверов при помощи протоколов HTTP/HTTPS, а также открывать их с локальных дисков. Далее осуществляется интерпретация кода в готовый интерфейс. Это то, что будет отображаться на экране устройства.</p>
9 <p>Элементы HTML бывают разными, но все они являются "строительными блоками" HTML-страниц. С их помощью можно пользоваться различными компонентами:</p>
9 <p>Элементы HTML бывают разными, но все они являются "строительными блоками" HTML-страниц. С их помощью можно пользоваться различными компонентами:</p>
10 <ul><li>изображениями;</li>
10 <ul><li>изображениями;</li>
11 <li>интерактивными формами;</li>
11 <li>интерактивными формами;</li>
12 <li>мультимедиа;</li>
12 <li>мультимедиа;</li>
13 <li>текстом;</li>
13 <li>текстом;</li>
14 <li>формами обратной связи.</li>
14 <li>формами обратной связи.</li>
15 </ul><p>Все это и не только может быть встроено в отображаемую в браузере страницу. Учится упомянутый язык достаточно легко, строится на основе разнообразных тегов, которые бывают парными и одиночными. Сами теги не отображаются браузерами, но используются для интерпретации содержимого веб-сайта.</p>
15 </ul><p>Все это и не только может быть встроено в отображаемую в браузере страницу. Учится упомянутый язык достаточно легко, строится на основе разнообразных тегов, которые бывают парными и одиночными. Сами теги не отображаются браузерами, но используются для интерпретации содержимого веб-сайта.</p>
16 <p>Для придания сервису большей привлекательности HTML используется в сочетании с JavaScript или CSS. Далее предстоит познакомиться с основами создания формы обратной связи при помощи языка гипертекста. Существуют различные варианты реализации задачи. Все они достаточно простые в освоении.</p>
16 <p>Для придания сервису большей привлекательности HTML используется в сочетании с JavaScript или CSS. Далее предстоит познакомиться с основами создания формы обратной связи при помощи языка гипертекста. Существуют различные варианты реализации задачи. Все они достаточно простые в освоении.</p>
17 <h2>Назначение и параметры</h2>
17 <h2>Назначение и параметры</h2>
18 <p>Форма обратной связи (contact form или feedback) - некий своеобразный способ взаимодействия клиентов с менеджерами веб-страниц или владельцами сайтов/менеджерами. Пример - такая форма может быть задействована для получения отзывов от клиентов, оформления услуг, оставления заявок и так далее.</p>
18 <p>Форма обратной связи (contact form или feedback) - некий своеобразный способ взаимодействия клиентов с менеджерами веб-страниц или владельцами сайтов/менеджерами. Пример - такая форма может быть задействована для получения отзывов от клиентов, оформления услуг, оставления заявок и так далее.</p>
19 <p>Скрипт формы, представленный далее, может быть изменен и использован для иных задач веб-сервисов. Примеры: авторизация, отправка комментариев, добавление товаров в корзину.</p>
19 <p>Скрипт формы, представленный далее, может быть изменен и использован для иных задач веб-сервисов. Примеры: авторизация, отправка комментариев, добавление товаров в корзину.</p>
20 <p>Ключевыми характеристиками рассматриваемой формы служат такие параметры как:</p>
20 <p>Ключевыми характеристиками рассматриваемой формы служат такие параметры как:</p>
21 <ul><li>возможность работы без перезагрузки страницы (AJAX);</li>
21 <ul><li>возможность работы без перезагрузки страницы (AJAX);</li>
22 <li>графическая капча - используется в качестве средства защиты от спама и рекламы;</li>
22 <li>графическая капча - используется в качестве средства защиты от спама и рекламы;</li>
23 <li>функциональность по добавлению файлов;</li>
23 <li>функциональность по добавлению файлов;</li>
24 <li>валидация информации на стороне клиента (в Интернет-обозревателе), а также на сервере;</li>
24 <li>валидация информации на стороне клиента (в Интернет-обозревателе), а также на сервере;</li>
25 <li>отправка успешных форм на почту (документы могут приходить как вложениями, так и ссылками).</li>
25 <li>отправка успешных форм на почту (документы могут приходить как вложениями, так и ссылками).</li>
26 </ul><p>Форма обратной связи может быть совершенно разной. Простейший вариант будет представлен полями: имя, почта, сообщение, формой загрузки документов, полем для каптчи.<a>Здесь</a>можно увидеть все исходные файлы, необходимые для формирования исходного проекта.</p>
26 </ul><p>Форма обратной связи может быть совершенно разной. Простейший вариант будет представлен полями: имя, почта, сообщение, формой загрузки документов, полем для каптчи.<a>Здесь</a>можно увидеть все исходные файлы, необходимые для формирования исходного проекта.</p>
27 <p>Оформление первой формы осуществляется за счет стилей, расположенных в документе "form-processing.css". Для реализации предложенных серверных сценариев требуется PHP, начиная с версии 7.0.</p>
27 <p>Оформление первой формы осуществляется за счет стилей, расположенных в документе "form-processing.css". Для реализации предложенных серверных сценариев требуется PHP, начиная с версии 7.0.</p>
28 <h2>Инициализация и настройка</h2>
28 <h2>Инициализация и настройка</h2>
29 <p>Для того, чтобы добавить форму обратной связи для сайта, необходимо воспользоваться тегом form. Он представляет следующую синтаксическую интерпретацию:</p>
29 <p>Для того, чтобы добавить форму обратной связи для сайта, необходимо воспользоваться тегом form. Он представляет следующую синтаксическую интерпретацию:</p>
30 <p>Указание обработки производится не через div, а посредством атрибута action. Форма обратной связи будет использоваться для получения данных со стороны пользователя. Пример такой формы можно отыскать в документе "index.html".</p>
30 <p>Указание обработки производится не через div, а посредством атрибута action. Форма обратной связи будет использоваться для получения данных со стороны пользователя. Пример такой формы можно отыскать в документе "index.html".</p>
31 <p>Для подключения к странице CSS и JavaScript-элементов необходимо использовать следующий шаблон:</p>
31 <p>Для подключения к странице CSS и JavaScript-элементов необходимо использовать следующий шаблон:</p>
32 <p>JS применяется для того, чтобы "обратная связь" работала с сервером при помощи AJAX (без предварительной перезагрузки страницы), а также для проверки вводимых клиентом сведений и отображения сообщений об успешном завершении функционирования.</p>
32 <p>JS применяется для того, чтобы "обратная связь" работала с сервером при помощи AJAX (без предварительной перезагрузки страницы), а также для проверки вводимых клиентом сведений и отображения сообщений об успешном завершении функционирования.</p>
33 <p>Сформировать сообщение об успешной работе поможет код:</p>
33 <p>Сформировать сообщение об успешной работе поможет код:</p>
34 <p>&lt;!- Сообщение об успешной отправки формы -&gt;</p>
34 <p>&lt;!- Сообщение об успешной отправки формы -&gt;</p>
35 <p> div class="form-success form-success_hide"</p>
35 <p> div class="form-success form-success_hide"</p>
36 <p> div class="form-success__message" Форма успешно отправлена. Нажмите &lt;button type="button" class="form-success__btn"&gt;здесь&lt;/button&gt;, если нужно отправить ещё одну форму. /div </p>
36 <p> div class="form-success__message" Форма успешно отправлена. Нажмите &lt;button type="button" class="form-success__btn"&gt;здесь&lt;/button&gt;, если нужно отправить ещё одну форму. /div </p>
37 <p> /div </p>
37 <p> /div </p>
38 <p>Разработчик сам определяет, какое сообщение и как именно оно выводится пользователю при успешной отправке изучаемого элемента на обработку. Выполнять подобные операции нужно в обработчике события success. Он генерируется в "form-processing.js" для тега form.</p>
38 <p>Разработчик сам определяет, какое сообщение и как именно оно выводится пользователю при успешной отправке изучаемого элемента на обработку. Выполнять подобные операции нужно в обработчике события success. Он генерируется в "form-processing.js" для тега form.</p>
39 <p>Выше - пример кода на HTML. В случае с JavaScript необходимо использовать следующую запись:</p>
39 <p>Выше - пример кода на HTML. В случае с JavaScript необходимо использовать следующую запись:</p>
40 <p>Метод reset служит для сброса имеющейся "обратной связи". Теперь необходимо инициализировать элемент как ItcSubmitForm:</p>
40 <p>Метод reset служит для сброса имеющейся "обратной связи". Теперь необходимо инициализировать элемент как ItcSubmitForm:</p>
41 <p>Передавать дополнительные настройки можно в формате объекта, который указывается вторым аргументом:</p>
41 <p>Передавать дополнительные настройки можно в формате объекта, который указывается вторым аргументом:</p>
42 <p>Здесь указаны значения ключей, которые устанавливаются по умолчанию. По мере необходимости они могут меняться. Теперь можно настроить константы на серверной PHP-скрипте "form-processing.php". Для этого:</p>
42 <p>Здесь указаны значения ключей, которые устанавливаются по умолчанию. По мере необходимости они могут меняться. Теперь можно настроить константы на серверной PHP-скрипте "form-processing.php". Для этого:</p>
43 <ol><li>При использовании каптчи, встроенной в форму, константе has_check_captcha необходимо установить значение true. Иначе - false:</li>
43 <ol><li>При использовании каптчи, встроенной в форму, константе has_check_captcha необходимо установить значение true. Иначе - false:</li>
44 </ol><p>.</p>
44 </ol><p>.</p>
45 <ol><li>Для загрузки файлов используется поле attach: .</li>
45 <ol><li>Для загрузки файлов используется поле attach: .</li>
46 <li>Настройки почты выглядят так:</li>
46 <li>Настройки почты выглядят так:</li>
47 <li>Отправка уведомлений пользователям о том, что требуется ввести e-mail: .</li>
47 <li>Отправка уведомлений пользователям о том, что требуется ввести e-mail: .</li>
48 <li>Has_write_log отвечает за необходимость отображения предупреждений и ошибок в процессе обработки формы в лог. Запись будет производиться в папку /feedback/logs: .</li>
48 <li>Has_write_log отвечает за необходимость отображения предупреждений и ошибок в процессе обработки формы в лог. Запись будет производиться в папку /feedback/logs: .</li>
49 <li>Константа has_write_txt будет определять, нужно ли сохранять успешные HTML-формы обратной связи в отдельный файл - /feedback/logs/form.log: .</li>
49 <li>Константа has_write_txt будет определять, нужно ли сохранять успешные HTML-формы обратной связи в отдельный файл - /feedback/logs/form.log: .</li>
50 </ol><p>После завершения всех настроек необходимо скопировать папку feedback в корневую директорию имеющегося сайта. По умолчанию в feedback расположен файл index.html. Он может быть использован для тестирования перед внедрением обратной связи на готовом проекте.</p>
50 </ol><p>После завершения всех настроек необходимо скопировать папку feedback в корневую директорию имеющегося сайта. По умолчанию в feedback расположен файл index.html. Он может быть использован для тестирования перед внедрением обратной связи на готовом проекте.</p>
51 <h2>Прочие способы создания</h2>
51 <h2>Прочие способы создания</h2>
52 <p>Рассматриваемый элемент для связи между менеджерами/владельцами веб-страниц и посетителей может быть написан несколькими способами. Один из них уже рассмотрен. Также можно воспользоваться такими приемами как:</p>
52 <p>Рассматриваемый элемент для связи между менеджерами/владельцами веб-страниц и посетителей может быть написан несколькими способами. Один из них уже рассмотрен. Также можно воспользоваться такими приемами как:</p>
53 <ol><li>HTML-форма с CSS и PHP. На выходе получится функциональная "анкета", которая хорошо расширяется. Данный прием является сложным и не подходит новичкам.</li>
53 <ol><li>HTML-форма с CSS и PHP. На выходе получится функциональная "анкета", которая хорошо расширяется. Данный прием является сложным и не подходит новичкам.</li>
54 <li>Использование только HTML от стороннего сервиса. Легко устанавливается и имеет множество функций.</li>
54 <li>Использование только HTML от стороннего сервиса. Легко устанавливается и имеет множество функций.</li>
55 <li>Реализация через средства ссылки для почтовых клиентов. При нажатии по такой feedback-form будет открываться почта, в которой уже записан нужный e-mail для связи. Элементарный подход, который не имеет никаких дополнительных опций и возможностей.</li>
55 <li>Реализация через средства ссылки для почтовых клиентов. При нажатии по такой feedback-form будет открываться почта, в которой уже записан нужный e-mail для связи. Элементарный подход, который не имеет никаких дополнительных опций и возможностей.</li>
56 </ol><p>Далее будут представлены все эти формы обратной связи для сайтов. Готовые шаблоны можно использовать на собственных веб-порталах.</p>
56 </ol><p>Далее будут представлены все эти формы обратной связи для сайтов. Готовые шаблоны можно использовать на собственных веб-порталах.</p>
57 <h3>HTML, CSS и PHP</h3>
57 <h3>HTML, CSS и PHP</h3>
58 <p>Стоит начать с самого сложного варианта. Он подойдет тем, кому необходима обратная связь с предельно расширяемым функционалом. Элемент настраивается как угодно, под нужды конкретного портала. Он способен запрашивать любые сведения о пользователей. Допускается формирование таких опций как отправка файлов, каптчи, прикрепление фотографий, ссылок на страницы, откуда совершается отправка и многого другого.</p>
58 <p>Стоит начать с самого сложного варианта. Он подойдет тем, кому необходима обратная связь с предельно расширяемым функционалом. Элемент настраивается как угодно, под нужды конкретного портала. Он способен запрашивать любые сведения о пользователей. Допускается формирование таких опций как отправка файлов, каптчи, прикрепление фотографий, ссылок на страницы, откуда совершается отправка и многого другого.</p>
59 <p>Для такого примера формы обратной связи необходимы:</p>
59 <p>Для такого примера формы обратной связи необходимы:</p>
60 <ul><li>знания PHP-языка;</li>
60 <ul><li>знания PHP-языка;</li>
61 <li>понимание CSS и HTML;</li>
61 <li>понимание CSS и HTML;</li>
62 <li>хостинг, который будет поддерживать PHP.</li>
62 <li>хостинг, который будет поддерживать PHP.</li>
63 </ul><p>Сначала требуется создать PHP-документ, который займется обработкой пользовательских запросов на сервере. Он проверяет, все ли необходимые поля заполнены. Если все верно, сообщение отправляется:</p>
63 </ul><p>Сначала требуется создать PHP-документ, который займется обработкой пользовательских запросов на сервере. Он проверяет, все ли необходимые поля заполнены. Если все верно, сообщение отправляется:</p>
64 <p>HTML-код будет выглядеть так:</p>
64 <p>HTML-код будет выглядеть так:</p>
65 <p>&lt;!DOCTYPE html&gt;</p>
65 <p>&lt;!DOCTYPE html&gt;</p>
66 <p>&lt;html lang="ru"&gt;</p>
66 <p>&lt;html lang="ru"&gt;</p>
67 <p>&lt;head&gt;</p>
67 <p>&lt;head&gt;</p>
68 <p>&lt;meta charset="UTF-8″&gt;</p>
68 <p>&lt;meta charset="UTF-8″&gt;</p>
69 <p>&lt;title&gt;Форма обратной связи&lt;/title&gt;</p>
69 <p>&lt;title&gt;Форма обратной связи&lt;/title&gt;</p>
70 <p>&lt;link rel="stylesheet" href="style.css"&gt;</p>
70 <p>&lt;link rel="stylesheet" href="style.css"&gt;</p>
71 <p>&lt;/head&gt;</p>
71 <p>&lt;/head&gt;</p>
72 <p>&lt;body&gt;</p>
72 <p>&lt;body&gt;</p>
73 <p>&lt;form name="form" action="mail.php" method="post" id="form_message"&gt;</p>
73 <p>&lt;form name="form" action="mail.php" method="post" id="form_message"&gt;</p>
74 <p>&lt;h2&gt;Форма обратной связи.&lt;/h2&gt;</p>
74 <p>&lt;h2&gt;Форма обратной связи.&lt;/h2&gt;</p>
75 <p>&lt;p&gt; div class="titles" Ваше имя* /div &lt;input class="input" name="name" type="text"/&gt; &lt;/p&gt;</p>
75 <p>&lt;p&gt; div class="titles" Ваше имя* /div &lt;input class="input" name="name" type="text"/&gt; &lt;/p&gt;</p>
76 <p>&lt;p&gt; div class="titles" Электронная почта* div &lt;input class="input" name="email" type="text"/&gt; &lt;/p&gt;</p>
76 <p>&lt;p&gt; div class="titles" Электронная почта* div &lt;input class="input" name="email" type="text"/&gt; &lt;/p&gt;</p>
77 <p>&lt;p&gt; div class="titles"&gt;Тема сообщения /div &lt;input class="input" name="subjects" type="text"/&gt; &lt;/p&gt;</p>
77 <p>&lt;p&gt; div class="titles"&gt;Тема сообщения /div &lt;input class="input" name="subjects" type="text"/&gt; &lt;/p&gt;</p>
78 <p>&lt;p&gt; div class="titles"&gt;Текст сообщения:/ div &lt;textarea name="message" cols="22″ rows="5″ /&gt;&lt;/textarea&gt;&lt;/p&gt;</p>
78 <p>&lt;p&gt; div class="titles"&gt;Текст сообщения:/ div &lt;textarea name="message" cols="22″ rows="5″ /&gt;&lt;/textarea&gt;&lt;/p&gt;</p>
79 <p>&lt;p&gt;&lt;input id="submit" value="Отправить" type="submit" /&gt;&lt;/p&gt;</p>
79 <p>&lt;p&gt;&lt;input id="submit" value="Отправить" type="submit" /&gt;&lt;/p&gt;</p>
80 <p>&lt;/form&gt;</p>
80 <p>&lt;/form&gt;</p>
81 <p>&lt;/body&gt;</p>
81 <p>&lt;/body&gt;</p>
82 <p>&lt;/html&gt;</p>
82 <p>&lt;/html&gt;</p>
83 <p>Остается добавить CSS, чтобы проект красиво выглядел:</p>
83 <p>Остается добавить CSS, чтобы проект красиво выглядел:</p>
84 <p>Получится простейшая анкета с полями: имя, почта (обязательно), тема обращения, сообщение. В самом низу будет расположена кнопка "Отправить" для обработки данных.</p>
84 <p>Получится простейшая анкета с полями: имя, почта (обязательно), тема обращения, сообщение. В самом низу будет расположена кнопка "Отправить" для обработки данных.</p>
85 <h3>Сервисы для отправки анкеты обратной связи</h3>
85 <h3>Сервисы для отправки анкеты обратной связи</h3>
86 <p>Существуют различные готовые сервисы для форм обратной связи для сайтов. Пример - от "Яндекса". Сервис позволяет составить собственную "анкету" с любыми полями. Настройки осуществляется достаточно быстро и легко, причем без познаний в области программирования. Результат достигается за счет наличия у сервисов готовых конструкторов.</p>
86 <p>Существуют различные готовые сервисы для форм обратной связи для сайтов. Пример - от "Яндекса". Сервис позволяет составить собственную "анкету" с любыми полями. Настройки осуществляется достаточно быстро и легко, причем без познаний в области программирования. Результат достигается за счет наличия у сервисов готовых конструкторов.</p>
87 <p>Чтобы освоить такой способ формирования кодов форм обратной связи на HTML, необходимо:</p>
87 <p>Чтобы освоить такой способ формирования кодов форм обратной связи на HTML, необходимо:</p>
88 <ul><li>знать HTML-язык;</li>
88 <ul><li>знать HTML-язык;</li>
89 <li>подготовить HTML-хостинг.</li>
89 <li>подготовить HTML-хостинг.</li>
90 </ul><p>Google и Yandex имеют отличные сервисы для создания опросов, анкет и форм. Остается открыть соответствующие предложения и настроить их под себя. На выходе разработчик получит готовый исходный код, который вставляется на сайт.</p>
90 </ul><p>Google и Yandex имеют отличные сервисы для создания опросов, анкет и форм. Остается открыть соответствующие предложения и настроить их под себя. На выходе разработчик получит готовый исходный код, который вставляется на сайт.</p>
91 <h3>Ссылка для отправки</h3>
91 <h3>Ссылка для отправки</h3>
92 <p>Самый простой вариант связи между клиентами и разработчиками/администраторами. Достаточно оставить на сайте email. Вот так выглядит код, который позволит вставить ссылку на почту:</p>
92 <p>Самый простой вариант связи между клиентами и разработчиками/администраторами. Достаточно оставить на сайте email. Вот так выглядит код, который позволит вставить ссылку на почту:</p>
93 <p>Подобные ссылки можно усложнять и задавать темы:</p>
93 <p>Подобные ссылки можно усложнять и задавать темы:</p>
94 <p>При нажатии по соответствующей ссылке пользователь перейдет в клиент электронной почты. Он сможет отправлять сообщения на тот или иной электронный адрес. Сама ссылка (формы обратной связи для сайта HTML) может быть украшена при помощи CSS-стилей.</p>
94 <p>При нажатии по соответствующей ссылке пользователь перейдет в клиент электронной почты. Он сможет отправлять сообщения на тот или иной электронный адрес. Сама ссылка (формы обратной связи для сайта HTML) может быть украшена при помощи CSS-стилей.</p>
95 <h2>Некоторые опции и функции</h2>
95 <h2>Некоторые опции и функции</h2>
96 <p>Для удаления блока с капчей используется код:</p>
96 <p>Для удаления блока с капчей используется код:</p>
97 <p>&lt;!- Капча -&gt;</p>
97 <p>&lt;!- Капча -&gt;</p>
98 <p>div class="form-group form-captcha"</p>
98 <p>div class="form-group form-captcha"</p>
99 <p> …</p>
99 <p> …</p>
100 <p>/div</p>
100 <p>/div</p>
101 <p>Новое поле в форму можно добавить при помощи вставки HTML-кода в form, создания маски (если это необходимо), добавления в form-processing.php кода для валидации:</p>
101 <p>Новое поле в форму можно добавить при помощи вставки HTML-кода в form, создания маски (если это необходимо), добавления в form-processing.php кода для валидации:</p>
102 <p>&lt;!- Телефон -&gt;</p>
102 <p>&lt;!- Телефон -&gt;</p>
103 <p>div class="form-group"</p>
103 <p>div class="form-group"</p>
104 <p> &lt;label for="phone" class="control-label"&gt;Телефон&lt;/label&gt;</p>
104 <p> &lt;label for="phone" class="control-label"&gt;Телефон&lt;/label&gt;</p>
105 <p> div class="input-group"</p>
105 <p> div class="input-group"</p>
106 <p> div class="input-group-prepend"</p>
106 <p> div class="input-group-prepend"</p>
107 <p> div class="input-group-text"&gt;+7 / div</p>
107 <p> div class="input-group-text"&gt;+7 / div</p>
108 <p> /div</p>
108 <p> /div</p>
109 <p> &lt;input id="phone" type="tel" name="phone" class="form-control" value="(___)___-__-__" pattern="^(?[0-9]{3})?(s+)?[0-9]{3}-?[0-9]{2}-?[0-9]{2}$"&gt;</p>
109 <p> &lt;input id="phone" type="tel" name="phone" class="form-control" value="(___)___-__-__" pattern="^(?[0-9]{3})?(s+)?[0-9]{3}-?[0-9]{2}-?[0-9]{2}$"&gt;</p>
110 <p> div class="invalid-feedback" /div</p>
110 <p> div class="invalid-feedback" /div</p>
111 <p> / div</p>
111 <p> / div</p>
112 <p>/ div</p>
112 <p>/ div</p>
113 <p>Все это способствует пониманию принципов формирования анкеты для обратной связи. Лучше разобраться в HTML, CSS и PHP помогут дистанционные компьютерные курсы.</p>
113 <p>Все это способствует пониманию принципов формирования анкеты для обратной связи. Лучше разобраться в HTML, CSS и PHP помогут дистанционные компьютерные курсы.</p>
114 <p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>. В частности, вас может заинтересовать курс, посвященный FullStack-разработке, первой ступенью которого является<a>изучение HTML/CSS</a></em>.</p>
114 <p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>. В частности, вас может заинтересовать курс, посвященный FullStack-разработке, первой ступенью которого является<a>изучение HTML/CSS</a></em>.</p>
115  
115