Семантическая структура для HTML5 страницы. Семантика в HTML5. HTML-документы. Основы HTML5

В этой статье мы охватим азы HTML, необходимые для начала работы. Дадим определение «элементам», «атрибутам», «тегам» и прочим важным понятиям, о которых вы возможно слышали, а также об их роли в языке. Мы также покажем, как устроены HTML-элементы, типичная HTML-страница, и объясним другие важные аспекты языка. По ходу дела, чтобы вы не заскучали, мы поиграем с настоящей HTML-страницей!

Что такое HTML?

HTML (HyperText Markup Language - язык гипертекстовой разметки) не является языком программирования; это язык разметки , используемый для определения структуры веб-страниц, посещаемых пользователями. Они могут иметь сложную или простую структуру, всё зависит от замысла и желания веб-разработчика. HTML состоит из ряда элементов , которые вы используете для того, чтобы охватить, обернуть или разметить различные части содержимого, чтобы оно имело определенный вид или срабатывало определенным способом. Встроенные для ">", и что в пустых элементах закрывающий тег не требуется и не допускается. Если атрибуты не указаны, то для них применяются значения по умолчанию.">тэги могут преобразовать часть содержимого в гиперссылку, по которой можно перейти на другую веб-страницу, выделить курсивом слова и так далее. Например, рассмотрим следующую строку:

Мой кот очень сердитый

Если мы хотим, чтобы строка отобразилась в таком же виде, мы можем определить её, как "параграф", заключив её в теги элемента "параграф" (Определяет собой абзац текста.">

), например:

Мой кот очень сердитый

Примечание : Метки в HTML нечувствительны к регистру, то есть они могут быть записаны в верхнем или нижнем регистре. Например, тег ) определяет заголовок документа, который отображается в заголовке окна браузера или на вкладке страницы. Он содержит только текст, а теги внутри элемента игнорируются."> может быть записан как <title> , <TITLE> , <Title> , <TiTlE> , и т.д., и он будет работать нормально. Лучшей практикой, однако, является запись всех тегов в нижнем регистре для обеспечения согласованности, удобочитаемости и других причин.</p> <h2>Структура HTML элементов</h2> <p>Давайте рассмотрим элемент "параграф" чуть подробнее:</p> <p>Основными частями элемента являются:</p> <ol><li><b>Открывающий тег: </b> Он состоит из названия (обозначения) элемента (в нашем случае, p), помещённого внутри <b>угловых скобок </b>. Данный тег служит признаком начала элемента, с этого момента тег начинает влиять на следующее после него содержимое.</li> <li><b>Закрывающий тег: </b> выглядит как и открывающий, но содержит слэш перед названием тега. Он служит признаком конца элемента. Пропуски закрывающих тегов - типичная ошибка новичков, которая может приводить к неопределённым результатам - в лучшем случае всё сработает правильно, в других страница может вовсе не прорисоваться или прорисоваться не как ожидалось.</li> <li><b>Содержимое: </b> Как видно, в нашем случае содержимым является простой текст.</li> <li><b>Элемент: </b> открывающий тег + закрывающий тег + содержимое = элемент.</li> </ol><h3>Активное изучение: создание вашего первого HTML элемента</h3> <p>Отредактируйте строку текста ниже в поле <i>Ввод </i>, обернув ее тегами <em> и </em> (вставьте <em> перед строкой, чтобы <i>указать начало элемента </i>, и </em> после нее, чтобы <i>указать конец элемента </i>) - эти действия должны выделить строку текста курсивом! Вы можете видеть изменения в реальном времени в поле <i>Вывод </i>.</p> <p> <i>Reset </i> <i>Show solution </i> , чтобы увидеть правильный ответ.</p> <h6>Playable code</h6> <h2>Результат</h2> <div class="output" style="min-height: 50px;"> </div> <h2>Редактируемый код</h2> <p class="a11y-label"></p> <textarea id="code" class="playable-code" style="min-height: 100px;width: 95%"> Это мой текст. </textarea> <div class="controls"> <input id="reset" type="button" value="Reset" /> <input id="solution" type="button" value="Show solution" /> </div> html { font-family: "Open Sans Light",Helvetica,Arial,sans-serif; } h2 { font-size: 16px; } .a11y-label { margin: 0; text-align: right; font-size: 0.7rem; width: 98%; } body { margin: 10px; background: #f5f9fa; } var textarea = document.getElementById("code"); var reset = document.getElementById("reset"); var solution = document.getElementById("solution"); var output = document.querySelector(".output"); var code = textarea.value; var userEntry = textarea.value; function updateCode() { output.innerHTML = textarea.value; } reset.addEventListener("click", function() { textarea.value = code; userEntry = textarea.value; solutionEntry = htmlSolution; solution.value = "Show solution"; updateCode(); }); solution.addEventListener("click", function() { if(solution.value === "Show solution") { textarea.value = solutionEntry; solution.value = "Hide solution"; } else { textarea.value = userEntry; solution.value = "Show solution"; } updateCode(); }); var htmlSolution = "<em>This is my text.</em><h3>Вложенные элементы</h3> <h3>Nesting_elements</h3> <p>Вы также можете вкладывать элементы внутрь других элементов - это называется <b>вложенностью </b>. Если мы хотим подчеркнуть, что наш кот очень сердитый, мы можем заключить слово "очень" в элемент ) указывает на то, что его содержание имеет большое значение, серьезность или срочность. Браузеры обычно отображают содержимое жирным шрифтом."> <strong> , который означает, что это слово крайне важно в данном контексте:</p><p> <p>Мой кот <strong>очень</strong> сердитый.</p> </p><p>Вы так же должны удостовериться, что элементы вложены должным образом: в следующем примере мы открываем p элемент первым, затем элемент strong , затем мы закрываем элемент strong первым, затем p . Следующее не правильно:</p><p> <p>Мой кот <strong>очень сердитый.</p></strong> </p><p>Элементы должны открываться и закрываться правильно таким образом, чтобы явно находиться внутри или снаружи друг друга. Если они перекрываются так, как в примере выше, то ваш браузер попытается «додумать» за вас, что вы имели в виду, и вы получите непредсказуемый результат. Так что не делайте так!</p> <h3>Блочные и строчные элементы</h3> <h3>Block versus inline elements</h3> <p>Существует две важных категории элементов в HTML, которые вам стоит знать - элементы блочного уровня и строчные элементы.</p> <ul><li>Элементы блочного уровня формируют видимый блок на странице - они окажутся на новой строке после любого контента, который шел до них, и любой контент после них также окажется на новой строке. Чаще всего элементами блочного уровня бывают структурные элементы страницы, представляющие собой, например, параграфы (абзацы), списки, меню навигации, подвалы, и т. п. Элементы блочного уровня не вкладываются в строчные элементы, но иногда могут вкладываться в другие элементы блочного уровня.</li> <li>Строчные элементы - это те, которые содержатся в элементах блочного уровня и окружают только малые части содержимого документа, не целые абзацы и группировки контента. Строчные элементы не приводят к появлению новой строки в документе: они обычно встречаются внутри абзаца текста, например, элемент определяет гиперссылку для перехода на определённое место на странице или на другую страницу в Интернете. Также он может быть использован (в устаревшем варианте) для создания якоря - это место назначения для гиперссылок внутри страницы: так ссылки не ограничены только в перемещении между страницами."> <a> (ссылка) или акцентирующие элементы вроде <em> или ) указывает на то, что его содержание имеет большое значение, серьезность или срочность. Браузеры обычно отображают содержимое жирным шрифтом."> <strong> .</li> </ul><p>Посмотрите на следующий пример:</p><p> <em>Первый</em><em>второй</em><em>третий</em> <p>четвертый</p><p>шестой</p> </p><p> <em> - это строчный элемент, так что, как вы здесь видите, первые три элемента находятся на одной строке друг с другом без пробелов между ними. С другой стороны, определяет собой абзац текста."> <p> - это элемент блочного уровня, так что каждый элемент находится на новой строке, с пространством выше и ниже каждого (этот интервал определяется CSS-оформлением по умолчанию, которое браузеры применяют к абзацам).</p> <p><b>Примечание </b>: HTML5 переопределил категории элементов в HTML: смотри Категории типов содержимого элементов . Хотя эти определения точнее и однозначнее, чем те, которые были раньше, их гораздо сложнее понять, чем «блочный» и «строчный», поэтому мы будем придерживаться их в этом разделе.</p> <p><b>Примечание </b>: Не путайте термины «блочный» и «строчный», используемые в этом разделе, с одноименными типами отображения в CSS . Хотя по умолчанию они коррелируют, смена типа отображения в CSS не меняет категорию элемента и не влияет на то, во что его можно вкладывать и что можно вкладывать в него. Эта довольно частая путаница - одна из причин, почему HTML5 отказался от этих терминов.</p> <h3>Пустые элементы</h3> <h3>Empty elements</h3> <p>Не все элементы соответствуют вышеупомянутому шаблону: открывающий тег, контент, закрывающий тег. Некоторые элементы состоят из одного тега и обычно используются для вставки чего-либо в то место документа, где размещены. Например, элемент - элемент HTML, предназначенный для описания изображений."> <img> вставляет картинку на страницу в том самом месте, где он расположен:</p><p> <img src='https://i1.wp.com/raw.githubusercontent.com/mdn/beginner-html-site/gh-pages/images/firefox-icon.png' loading=lazy> </p><p>Это выведет на вашу страницу следующее:</p> <p><b>Примечание </b>: Пустые элементы иногда называют <i>void-элементы </i>.</p> <h2>Атрибуты</h2> <p>У элементов также могут быть атрибуты, которые выглядят так:</p> <p>Src="https://mdn.mozillademos.org/files/9345/grumpy-cat-attribute-small.png" style="display: block; height: 156px; margin: 0px auto; width: 1287px;"/></p> <p>Атрибут должен иметь:</p> <ol><li>Пробел между атрибутом и именем элемента (или предыдущим атрибутом, если у элемента уже есть один или несколько атрибутов).</li> <li>Имя атрибута и следующий за ним знак равенства.</li> <li>Значение атрибута, заключенное в кавычки.</li> </ol><h3>Активное изучение: Добавление атрибутов в элемент</h3> <h3>Active learning: Adding attributes to an element</h3> <p>Возьмём для примера элемент определяет гиперссылку для перехода на определённое место на странице или на другую страницу в Интернете. Также он может быть использован (в устаревшем варианте) для создания якоря - это место назначения для гиперссылок внутри страницы: так ссылки не ограничены только в перемещении между страницами."> <a> - означает anchor (якорь) и делает текст внутри него гиперссылкой. Может иметь несколько атрибутов, вот два из них:</p> <ul><li>href: В значении этого атрибута прописывается веб-адрес, на который, по вашей задумке, должна указывать ссылка, куда браузер переходит когда вы по ней кликаете. Например, href="https://www.mozilla.org/" .</li> <li>title: Атрибут title описывает дополнительную информацию о ссылке, такую как: на какую страницу она ведет. Например, title="The Mozilla homepage" . Она появится в виде всплывающей подсказки, когда вы наведете курсор на ссылку.</li> <li>target: Атрибут target определяет контекст просмотра, который будет использоваться для отображения ссылки. Например, target="_blank" отобразит ссылку на новой вкладке. Если вы хотите отобразить ссылку на текущей вкладке, просто опустите этот атрибут.</li> </ul><p>Измените строку текста ниже в поле <i>Ввод </i> так, чтобы она вела на ваш любимый вебсайт. Сначала добавьте элемент <a> затем атрибут href и атрибут title . Наконец, укажите атрибут target чтобы открыть ссылку на новой вкладке. Вы можете наблюдать сделанные изменения в реальном времени в поле <i>Вывод </i>. Вы должны увидеть гиперссылку, при наведении курсора на которую появляется содержимое атрибута title , а при щелчке переходит по адресу в атрибуте href . Помните, что между именем элемента и каждым из атрибутов должен быть пробел.</p> <p>Если Вы ошиблись, то всегда можете начать снова, воспользовавшись кнопкой <i>Reset </i>. Если упражнение вызывает у Вас затруднения, то нажмите кнопку <i>Show solution </i> чтобы увидеть правильный ответ.</p> <h6>Playable code2</h6> <h2>Результат</h2> <div class="output" style="min-height: 50px;"> </div> <h2>Редактируемый код</h2> <p class="a11y-label">Нажмите Esc, чтобы выйти из области кода (Tab вставляет символ табуляции).</p> <textarea id="code" class="input" style="min-height: 100px;width: 95%"> <p>A link to my favorite website.</p> </textarea> <div class="playable-buttons"> <input id="reset" type="button" value="Reset"> <input id="solution" type="button" value="Show solution"> </div> html { font-family: sans-serif; } h2 { font-size: 16px; } .a11y-label { margin: 0; text-align: right; font-size: 0.7rem; width: 98%; } body { margin: 10px; background: #f5f9fa; } var textarea = document.getElementById("code"); var reset = document.getElementById("reset"); var solution = document.getElementById("solution"); var output = document.querySelector(".output"); var code = textarea.value; var userEntry = textarea.value; function updateCode() { output.innerHTML = textarea.value; } reset.addEventListener("click", function() { textarea.value = code; userEntry = textarea.value; solutionEntry = htmlSolution; solution.value = "Show solution"; updateCode(); }); solution.addEventListener("click", function() { if(solution.value === "Show solution") { textarea.value = solutionEntry; solution.value = "Hide solution"; } else { textarea.value = userEntry; solution.value = "Show solution"; } updateCode(); }); var htmlSolution = "<p>A link to my favorite website.</p>"; var solutionEntry = htmlSolution; textarea.addEventListener("input", updateCode); window.addEventListener("load", updateCode); // stop tab key tabbing out of textarea and // make it write a tab at the caret position instead textarea.onkeydown = function(e){ if (e.keyCode === 9) { e.preventDefault(); insertAtCaret("\t"); } if (e.keyCode === 27) { textarea.blur(); } }; function insertAtCaret(text) { var scrollPos = textarea.scrollTop; var caretPos = textarea.selectionStart; var front = (textarea.value).substring(0, caretPos); var back = (textarea.value).substring(textarea.selectionEnd, textarea.value.length); textarea.value = front + text + back; caretPos = caretPos + text.length; textarea.selectionStart = caretPos; textarea.selectionEnd = caretPos; textarea.focus(); textarea.scrollTop = scrollPos; } // Update the saved userCode every time the user updates the text area code textarea.onkeyup = function(){ // We only want to save the state when the user code is being shown, // not the solution, so that solution is not saved over the user code if(solution.value === "Show solution") { userEntry = textarea.value; } else { solutionEntry = textarea.value; } updateCode(); }; <h3>Булевы атрибуты</h3> <h3>Boolean attributes</h3> <p>Иногда вы будете видеть атрибуты, написанные без значения - это совершенно допустимо. Такие атрибуты называются булевы и они могут иметь только одно значение, которое в основном совпадает с его именем. В качестве примера возьмем атрибут disabled , который можно назначить для формирования элементов ввода, если вы хотите, чтобы они были отключены (неактивны), так что пользователь не может вводить какие-либо данные в них.</p><p> <input type="text" disabled="disabled"> </p><p>Для краткости совершенно допустимо записывать их следующим образом (мы так же для справки разместили не деактивированный элемент input, чтобы дать вам большее понимание происходящего):</p><p> <input type="text" disabled> <input type="text"> </p><p>На выходе оба варианта будут выглядеть следующим образом:</p> <h3>Опускание кавычек вокруг значений атрибутов</h3> <h3>Omitting quotes around attribute values</h3> <p>Осматриваясь во всемирной сети, вы будете встречать различные незнакомые способы написания разметки, включая написание значений атрибутов без кавычек. Это допустимо при определенных условиях, но разрушит вашу разметку при других. Например, возвращаясь к нашему упражнению с гиперссылкой, мы можем написать основной вариант только с атрибутом href так:</p><p> favorite website </p><p>Однако, как только мы добавим атрибут title в таком же стиле, мы поступим неверно:</p><p> favorite website </p><p>В этом месте браузер неверно истолкует вашу разметку, думая, что атрибут title это на самом деле три разных атрибута - атрибут title со значением "The" и два булевых атрибута: Mozilla и homepage . Это, очевидно, не то, что имелось ввиду, и приведёт к ошибке или неожиданному поведению кода, как это показано в живом примере ниже. Попробуйте навести курсор на ссылку, чтобы увидеть на что похож текст title!</p> <p>Наш совет: всегда используйте кавычки в атрибутах - это позволит избежать подобных проблем, и следовательно, код будет более читабельным.</p> <h3>Одинарные или двойные кавычки?</h3> <h3>Single or double quotes?</h3> <p>В этой статье вы заметите, что все атрибуты заключены в двойные кавычки. Однако, вы можете видеть одинарные кавычки в HTML документах других людей. Это исключительно дело вкуса и вы можете свободно выбирать, какие из них предпочитаете. Обе следующие строки эквивалентны:</p><p> A link to my example. A link to my example. </p><p>Однако, вы должны убедиться, что не смешиваете их вместе. Следующее будет неверным!</p><p> A link to my example. </p><p>Если вы используете один тип кавычек в своем HTML, то вы можете поместить внутрь их кавычки другого типа не вызывая никаких проблем:</p><p> A link to my example. </p><p>Если вы хотите вставить кавычки того же типа, то вы должны использовать объекты HTML . Например, это работать не будет:</p><p> A link to my example. </p><p>Поэтому вам нужно сделать так:</p><p> A link to my example. </p><h2>Структура HTML документа</h2> <p>Ниже дан пример оборачивания основных, самостоятельных HTML элементов, которые не очень полезны сами по себе. Давайте посмотрим как самостоятельные элементы объединяются для формирования всей HTML страницы:</p><p> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>My test page

This is my page

Вот что мы имеем:

  1. : The doctype. Очень давно, еще когда HTML был молод (1991/2), doctypes использовались в качестве ссылок на набор правил, которым HTML страница должна была следовать, чтобы она считалась хорошей, что может означать автоматическую проверку ошибок и другие полезные вещи. Doctypes выглядели примерно вот так: Однако, в наши дни никто особо не думает о них, и doctypes стали историческим артефактом, которые должны быть включены везде, чтобы все работало правильно. это самый короткий вид doctype, который считается действующим. На самом деле это всё, что нужно вам знать о doctypes .
  2. : Элемент представляет собой корень (элемент верхнего уровня) HTML-документа, поэтому его так же называют корневым элементом. Все другие элементы должны быть потомками этого элемента (должны находиться внутри него)."> содержит в себе всё содержимое на всей странице, и иногда его называют "корневой элемент".
  3. : Элемент содержит машиночитаемую информацию (metadata) о документе, например его заголовок, скрипты и страницы стилей."> . Данный элемент выступает в качестве контейнера для всего содержимого, которое вы хотите включить в HTML документ, но не хотите показывать посетителям вашей страницы. Он включает такие вещи, как ключевые слова и описание страницы, которые вы хотели бы показывать в поисковых запросах, CSS для стилизирования вашего контента, объявление поддерживаемого набора символов и многое другое. Вы узнаете больше об этом из следующей статьи данного руководства.
  4. : Этот элемент устанавливает в качестве символьной кодировки для вашего документа utf-8 , который включает большинство символов из всех известных человечеству языков. По существу, теперь страница сможет отобразить любой текстовый контент, который вы сможете в неё вложить. Нет причин не устанавливать эту кодировку, это также позволит избежать некоторых проблем позднее.
  5. : Элемент ) определяет заголовок документа, который отображается в заголовке окна браузера или на вкладке страницы. Он содержит только текст, а теги внутри элемента игнорируются."> . Этот элемент устанавливает заголовок вашей страницы, который появляется во вкладке браузера, загружающей эту страницу, также это заглавие используется при описании страницы, когда вы сохраняете её в закладках или избранном.</li> <li><body></body> : Элемент <body>."> <body> . Он содержит <i>весь </i> контент, который вы хотите показывать посетителям вашей страницы - текст, изображения, видео, игры, проигрываемые аудио дорожки или что-то ещё.</li> </ol><h3>Активное изучение: Добавление элементов в ваш HTML-документ.</h3> <h3>Active learning: Adding some features to an HTML document</h3> <p>Если вы хотите поэкспериментировать с написанием HTML на своём компьютере, то можете:</p> <ol><li>Скопировать пример HTML-страницы, расположенный выше.</li> <li>Создать новый файл в текстовом редакторе.</li> <li>Вставить код в ваш новый текстовый файл.</li> <li>Сохранить файл как index.html .</li> </ol><p>Теперь можете открыть браузер и посмотреть, во что отрисовался код, а потом изменить его, обновить страницу и посмотреть, что получилось. Сначала страница выглядит так:</p> <p><img src='https://i0.wp.com/mdn.mozillademos.org/files/12279/template-screenshot.png' width="100%" loading=lazy>Для этого упражнения вы можете редактировать код локально на своём компьютере, как предлагается выше, а можете работать в редакторе, расположенном ниже. В редакторе показано только содержимое элемента представляет собой контент (содержимое) документа HTML. В документе может быть только один элемент <body>."> <body> . Попробуйте сделать следующее:</p> <ul><li>Добавьте заголовок страницы сразу за открывающим тегом представляет собой контент (содержимое) документа HTML. В документе может быть только один элемент <body>."> <body> . Текст должен находиться между открывающим тегом <h1> и закрывающим </h1> .</li> <li>Напишите в параграфе о чём-нибудь, что кажется вам интересным.</li> <li>Выделите важные слова, обернув их в открывающий тег <strong> и закрывающий </strong></li> <li>Добавьте ссылку на свой абзац, так как объяснено ранее в статье .</li> <li>Добавьте изображение в свой документ под абзацем, как объяснено ранее в статье . Если сможете использовать другую картинку (со своего компьютера или из интернета) - вы большой молодец!</li> </ul><p>Если вы запутались, всегда можно запустить пример сначала кнопкой <i>Reset </i>. Сдаётесь - посмотрите ответ, нажав на <i>Show solution </i>.</p> <h6>Playable code3</h6> <h2>Live output</h2> <div class="output" style="min-height: 50px;"> </div> <h2>Editable code</h2> <p class="a11y-label">Press Esc to move focus away from the code area (Tab inserts a tab character).</p> <textarea id="code" class="input" style="min-height: 100px;width: 95%"> <p>This is my page</p> </textarea> <div class="playable-buttons"> <input id="reset" type="button" value="Reset"> <input id="solution" type="button" value="Show solution"> </div> html { font-family: sans-serif; } h2 { font-size: 16px; } .a11y-label { margin: 0; text-align: right; font-size: 0.7rem; width: 98%; } img { max-width: 100%; } body { margin: 10px; background: #f5f9fa; } var textarea = document.getElementById("code"); var reset = document.getElementById("reset"); var solution = document.getElementById("solution"); var output = document.querySelector(".output"); var code = textarea.value; var userEntry = textarea.value; function updateCode() { output.innerHTML = textarea.value; } reset.addEventListener("click", function() { textarea.value = code; userEntry = textarea.value; solutionEntry = htmlSolution; solution.value = "Show solution"; updateCode(); }); solution.addEventListener("click", function() { if(solution.value === "Show solution") { textarea.value = solutionEntry; solution.value = "Hide solution"; } else { textarea.value = userEntry; solution.value = "Show solution"; } updateCode(); }); var htmlSolution = "<p>I really enjoy <strong>playing the drums</strong>. One of my favorite drummers is Neal Peart, who\ plays in the band Rush.\ My favourite Rush album is currently Moving Pictures.</p>\ <img src='https://i1.wp.com/cygnus-x1.net/links/rush/images/albums/sectors/sector2-movingpictures-cover-s.jpg' loading=lazy>"; var solutionEntry = htmlSolution; textarea.addEventListener("input", updateCode); window.addEventListener("load", updateCode); // stop tab key tabbing out of textarea and // make it write a tab at the caret position instead textarea.onkeydown = function(e){ if (e.keyCode === 9) { e.preventDefault(); insertAtCaret("\t"); } if (e.keyCode === 27) { textarea.blur(); } }; function insertAtCaret(text) { var scrollPos = textarea.scrollTop; var caretPos = textarea.selectionStart; var front = (textarea.value).substring(0, caretPos); var back = (textarea.value).substring(textarea.selectionEnd, textarea.value.length); textarea.value = front + text + back; caretPos = caretPos + text.length; textarea.selectionStart = caretPos; textarea.selectionEnd = caretPos; textarea.focus(); textarea.scrollTop = scrollPos; } // Update the saved userCode every time the user updates the text area code textarea.onkeyup = function(){ // We only want to save the state when the user code is being shown, // not the solution, so that solution is not saved over the user code if(solution.value === "Show solution") { userEntry = textarea.value; } else { solutionEntry = textarea.value; } updateCode(); }; <h3>Пробелы в HTML</h3> <h3>Whitespace in HTML</h3> <p>Вы могли заметить, что в примерах кода из этой статьи много пробелов. Это вовсе не обязательно - следующие два примера эквивалентны:</p><p> <p>Собаки глупы.</p> <p>Собаки глупы.</p> </p><p>Не важно, сколько пустого места вы используете в разметке (что может включать пробелы и сдвиги строк), браузер, при анализе кода, сократит все пустое место до одного пробела. Зачем использовать много пробелов? Ответ это доступность для понимания - гораздо легче разобраться, что происходит в твоем коде, если он удобно отформатирован, а не просто собран вместе в одном большом беспорядке. В нашем коде каждый вложенный элемент сдвинут на два пробела относительно элемента, в котором он находится. Вы можете использовать любое форматирование (в частности, количество пробелов для отступа), но лучше придерживаться одного стиля.</p> <h2>Ссылки на сущности: Включение специальных символов в HTML</h2> <h2>Entity references: Including special characters in HTML</h2> <p>В HTML символы < , > , " , " and & являются специальными символами. Они часть HTML синтаксиса сами по себе, так как вам включить один из этих символов в текст, например если вы хотите использовать ампресанд или знак "меньше чем", и вам не нужно, чтобы эти знаки интерпретировалось браузером как часть разметки?</p> <p>В следующем примере вы видите два абзаца, которые рассказывают о веб-технологиях:</p><p> <p><p>In HTML, you define a paragraph using the </p><p>В живом выводе ниже, вы можете заметить, что первый абзац выводится неправильно, так как браузер считает, что второй элемент <p>Является началом нового абзаца! Второй абзац нашего кода выводится правильно, потому что мы заменили угловые скобки на ссылки-мнемоники.</p> <h2>HTML комментарии</h2> <h2>HTML comments</h2> <p>В HTML, как и в большинстве языков программирования, есть возможность писать комментарии в коде. Комментарии игнорируются обозревателем и не видны пользователю, их добавляют для того, чтобы пояснить, как работает написанный код, что делают отдельные его части и т. д. Такая практика полезна, если вы возвращаетесь к коду, который давно не видели или когда хотите передать его кому-то другому.</p> <p>Чтобы превратить часть содержимого HTML-файла в комментарий, нужно поместить её в специальные маркеры <!-- и --> , например:</p><p> <p>I"m not inside a comment</p> <!-- --> </p><p>Как вы увидете ниже, первый параграф будет отображён на экране, а второй нет.</p> <h2>Подведение итогов</h2> <p>Вы дошли до конца статьи - надемся, вам понравилось путешествие по основам HTML. На этом этапе вы уже должны немного разобраться, как выглядит язык, как он работает на базовом уровне и уметь описать несколько элементов и атрибутов. Сейчас идеальное время и место, чтобы продолжить изучать HTML. В последующих статьях мы рассмотрим некоторые из вещей, которые вы уже рассмотрели, но намного подробнее, а также представим некоторые новые функции языка. Оставайтесь с нами!</p> <p><b>Примечание </b>: Сейчас, когда вы начинаете больше узнавать о HTML, вы также можете начать изучать основы каскадных таблиц стилей Cascading Style Sheets или CSS . CSS - это язык, который используется для стилизации веб-страниц (например изменение шрифта или цветов или изменение макета страницы). Как вы скоро поймете, HTML и CSS созданы друг для друга.</p> <p>Здравствуйте! В этом уроке вы НЕ найдете для себя ничего полезного, если УЖЕ знакомы с формированием структуры HTML документа. Для тех, кто НЕ знаком, я покажу правильную (валидную) структуру HTML веб-документа, в том числе для сайта WordPress.</p><h2>Общая правильная структура HTML документа</h2><p>В первую очередь, без долгих предисловий – общая структура любого HTML документа должна быть такой:</p> <!DOCTYPE html> /*Указывает тип текущего документа DTD*/ <html> /*Показывает начало документа*/ <head>/*Показывает начало заголовка (шапки)*/ <title>Test/*Показывает заголовок*/ /*Показывает начало заголовка*/ /*Показывает начало основной части документа (тело)*/ /*Содержательная часть документа*/ /*Показывает конец основной части документа*/ /*Показывает конец документа*/

    Если убрать пояснения, которые я показывал после каждого тега, то простая структура HTML документа выглядит так

    Test

    Тип текущего документа DTD

    Тип текущего документа (Document Type Definition, DTD ) необходим, чтобы браузер понимал, как следует интерпретировать текущую веб-страницу, ведь язык HTML существует в нескольких версиях.

    Кроме этого есть другие языки разметки отличные от HTML, например XHTML.

    Примечание: XHTML это EXtensible HyperText Markup Language, что переводим, как расширенный язык разметки гипертекста.

    XHTML похож на HTML, но отличается синтаксисом. Чтобы браузер не путался языки и нужно показать ему в первой строке кода, тип текущего документа DOCTYPE .

    Понятие тега в HTML

    Вы обратили внимание, что вся структура HTML документа задается определенными тегами – некими словами, заключенными в угловые скобки.

    Слово, заключенное в угловые скобки HTML документа называется тегом. Каждый тег имеет свой смысл, определенный правилами разметки.

    • Тег означает заголовок html документа. В тегах head хранится информация для браузеров и поисковых систем. В том числе в виде мета-тегов;
    • Тег означает основное содержание html документа. Именно текст, изображения, скрипты Java Script и т.д.;
    • Тег [p] это блочный элемент, всегда начинается с новой строки. Он означает абзац основного содержания html документа.

    Важно! Все теги html разметки должны быть парными. То есть, открывающий тег <тег> , должен быть закрыт закрывающим тегом, с косой чертой .

    Теги заголовков и подзаголовков h1-h6

    Для улучшения структурирования текста документа, а также улучшения SEO веб-страниц, существуют дополнительные теги основного содержания. Они называются теги заголовков и подзаголовков от h1 до h6, всего 6 штук.

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

    Теги h1 h6 имеют подчиненную зависимость, нижний уровень этой подчинённости абзац.

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

    Пример развитой структуры HTML документа

    Приведу академический пример более развитой структуры HTML документа:

    Test

    Основной заголовок

    Основной заголовок

    Первый подзаголовок

    Основной заголовок

    Второй подзаголовок

    Первый второстепенный подзаголовок

    Структура HTML 5

    В версии HTML 5 должна быть такая структура документа:

    Это декларация которая показывает, что этот документ в HTML5 ;

    это корневой элемент HTML страницы;

    Элемент, с мета-тегами о документе;

    Этот элемент определяет заголовок для документа;</p><p><body> Этот элемент содержит видимое содержимое страницы;</p><p><h1> Элемент определяет большой заголовок</p><p><p>Элемент определяет абзац.</p><p>Работают в html5 теги h2 — h6</p><p><i>Все теги двойные. Начальный тег называется открывающим тегом, а конечный тег — закрывающим тегом. </i></p><h2>HTML разметка на сайте WordPress</h2><p>Несмотря на то, что скрипт WordPress написан на php, все файлы сайта, а вернее все файлы рабочего шаблона сайта, имеют html разметку. Смотрим пример, на файле header.php шаблона <b>Twenty Seventeen </b>:</p><p> <?php ?><!DOCTYPE html> <html <?php language_attributes(); ?> class="no-js no-svg"> <head> <meta charset="<?php bloginfo("charset"); ?>"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="profile" href="http://gmpg.org/xfn/11"> <?php wp_head(); ?> </head> <body <?php body_class(); ?>> <div id="page" class="site"> <?php _e("Skip to content", "twentyseventeen"); ?> <header id="masthead" class="site-header" role="banner"> <?php get_template_part("template-parts/header/header", "image"); ?> <?php if (has_nav_menu("top")) : ?> <div class="navigation-top"> <div class="wrap"> <?php get_template_part("template-parts/navigation/navigation", "top"); ?> </div><!-- .wrap --> </div><!-- .navigation-top --> <?php endif; ?> </header><!-- #masthead --> <?php if ((is_single() || (is_page() && ! twentyseventeen_is_frontpage())) && has_post_thumbnail(get_queried_object_id())) : echo "<div class="single-featured-image-header">"; echo get_the_post_thumbnail(get_queried_object_id(), "twentyseventeen-featured-image"); echo "</div><!-- .single-featured-image-header -->"; endif; ?> <div class="site-content-contain"> <div id="content" class="site-content"> </p><p>Вы можете видеть, что если все функции WordPress размещены в классической HTML разметке. Есть тип документа: <!DOCTYPE html></p><p>Парные теги , </p><p>Открывающий тег .</p><p>Закрывающий тег можно найти в файле footer.php .</p><h2>Как посмотреть HTML код страницы сайта WordPress</h2><p>То, что вы пишите в редакторе сайта, создавая статьи или страницы, это лишь часть HTML страницы сайта. Это даже не всё тело (body) страницы.</p><p>Чтобы посмотреть HTML код страницы сайта WordPress, а это нужно очень часто, нужно:</p><p>Открыть страницу в браузере;</p><p>Перейти в английский шрифт клавиатуры;</p><p>Нажать следующие кнопки:</p><ul><li>Chrome: Ctrl+U</li><li>Opera: Ctrl+U</li><li>Mozilla: Ctrl+U</li> </ul><p>Может быть, вы пока не знаете, зачем это нужно. Поверьте, это будет нужно не раз, для анализа своего сайта и возможно сайтов конкурентов.</p><h2>Вывод</h2><p>В заключении хотелось сделать вывод, но на ум приходит только мысль, что статья получилось, совсем для начинающих. Между примером кода статьи и примерами из реальных сайтов, на первый, взгляд большая разница. Однако у всех файлов одинаковая структура HTML документа и крайне важно эту структуру не нарушать при работе с сайтом.</p> <p>При создании сайта первое, что нужно представлять — это то, как формируется веб-страница. Это, своего рода, «фундамент» в сайтостроении. Поэтому прежде чем, углубляться в изучение более сложных технологий создания сайтов, рекомендуется иметь хотя бы базовые сведения о HTML. В данном уроке мы познакомимся с <b>HTML </b>, разберем <b>структуру документа HTML </b> и на практических примерах закрепим полученные знания.</p> <h2>Что такое HTML?</h2> <p><b>HTML </b> расшифровывается, как язык разметки гипертекста (от англ. HyperText Markup Language). Данный язык отвечает за то, как именно будет отображаться гипертекст на страницах сайта. Теперь давайте разберемся, что же такое гипертекст? Не секрет, что отдельная веб-страница может содержать много разнотипной информации, будь то текст, какие-то таблицы, графики, видеоролики, аудио и т.д. Так вот, всю эту информацию можно назвать одним словом — гипертекст.</p> <p>Отметим, что HTML является именно языком разметки, а не языком программирования. В данном языке нет никаких логических функций и произвести какие-либо математические расчеты на нем невозможно. Страницы HTML имеют расширение <b>.html </b> или <b>.htm </b> и обрабатываются браузерами — IE, Mozilla Firefox, Google Chrome, Yandex Chrome, Opera и др.</p> <p>Теперь давайте разберемся как же браузер понимает, что и каким образом отображать на веб-странице? Это очень просто. Язык разметки гипертекста HTML имеет встроенные команды, их называют тегами. Именно по ним браузер и ориентируются.</p> <h2>Структура документа HTML</h2> <p>Любой HTML документ (веб-станица) должен иметь определенную структуру. Это позволит избежать возможных проблем при открытии страниц в браузерах. В качестве примера давайте рассмотрим страницу, которая содержит следующих HTML код:</p> <blockquote> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" <html> <head> <title>Структура HTML документа ...

    Разберем по порядку, что входит в данную структуру:

    1. Первое, что идет в документе HTML — указание версии (первая строка). Для корректной работы следует указывать данную строку при верстке веб-страницы.

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

    4. Мета-тег «description» — краткое содержание страницы, предназначен для поисковых систем. Данный тег является важным для поисковой оптимизации и его необходимо заполнять.

    5. Мета-тег «keywords» — ключевые слова, которые могут встречаться на странице. Данный тег также предназначен для поисковиков. В настоящее время этот тег редко используется.

    6. Тело страницы открывается тегом и закрывается, соответственно, тегом . В теле веб-страницы размещается, как правило, основной контент — текст, видео, аудио и другая информация.

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

    1. Article title
    1. Article sub-heading
    1. Article sub-sub-heading
    2. Sidebar heading
    1. Sidebar sub-heading
    3. Footer heading

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

    . Теперь нам необходимо сохранить положение вещей после приведения структуры к виду HTML5 стандарта.

    HTML5 структура документа.

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



    Site title etc.



    Article title


    Article content.


    Article sub-heading


    More content.


    Article sub-sub-heading


    More content.





    Footer heading


    Footer content.



    Для обеспечения обратной совместимости я не стал менять все заголовки документа на

    элементы, как это рекомендуется делать в HTML5 спецификации, а оставил прежние уровни для всех заголовков (тем более, что в нашем случае тотальная замена заголовков на

    ни как не повлияет на структуру документа HTML5 стандарта). В результате мы получим структуру совершенно идентичную той, которая была в предыдущем HTML 4.01 примере. Именно ее и формирует браузер, не использующий новый алгоритм HTML5 стандарта. Но в том случае, если вы используете инструмент, подобный HTML5 outliner , который как раз таки и применяет вышеупомянутый алгоритм, то в результате вы увидите следующую структуру:

    1. Footer heading
    1. Untitled NAV
    2. Article title
    1. Article sub-heading
    1. Article sub-sub-heading
    3. Sidebar heading
    1. Sidebar sub-heading

    Что вы скажите на этот раз? Как же получилось так, что находящийся в элементе

    заголовок определен как самый важный на странице? И почему секция