=====Начало работы с HTML======
В этой статье мы рассмотрим абсолютные основы HTML. Для начала в этой статье даны определения элементов, атрибутов и всех других важных терминов, которые вы, возможно, слышали. Также объясняется, где они вписываются в HTML. Вы узнаете, как структурированы элементы HTML, как структурирована типичная страница HTML и другие важные базовые функции языка. Попутно будет возможность поиграть и с HTML!
=====Что такое HTML?=====
[[software:development:web:docs:Glossary:HTML|HTML]] (язык разметки гипертекста) — это язык разметки , который сообщает веб-браузерам, как структурировать посещаемые вами веб-страницы. Это может быть настолько сложно или просто, насколько того хочет веб-разработчик. HTML состоит из ряда [[software:development:web:docs:Glossary:Element|элементов]], которые вы используете для включения, переноса или разметки различных частей контента, чтобы он выглядел или действовал определенным образом. Заключающие теги могут превращать контент в гиперссылку для перехода на другую страницу, выделять слова курсивом и т. д. Например, рассмотрим следующую строку текста:
]] элемент абзаца ( ):
My cat is very grumpy Мой кот очень сварливый. Мой кот очень сварливый. %%**, а затем открыли тег **%%%%**. Для правильной вложенности мы должны сначала закрыть элемент тегом **%%%%**, а затем закрыть весь элемент **%% Мой кот очень сварливый.
Пример:
Пример:
Мой кот очень сварливый.
**Теги должны открываться и закрываться таким образом, чтобы они находились внутри или снаружи друг друга**. Учитывая такое перекрытие, как в приведенном выше примере, браузеру приходится угадывать ваши намерения. Подобные догадки могут привести к неожиданным результатам. ====Пустотные элементы==== Не все элементы следуют шаблону открывающего тега, содержимого и закрывающего тега. Некоторые элементы состоят из одного тега, который обычно используется для вставки/внедрения чего-либо в документ. Такие элементы называются [[software:development:web:docs:Glossary:Void_element|пустыми элементами]]. Например, [[software:development:web:docs:Web:HTML:Element:img|]] элемент встраивает файл изображения на страницу:
Это выведет следующее:
Ссылка на сайт
====Логические атрибуты====
Иногда вы увидите атрибуты, написанные без значений. Это вполне приемлемо. Они называются логическими атрибутами. Логические атрибуты могут иметь только одно значение, которое обычно совпадает с именем атрибута. Например, рассмотрим [[software:development:web:docs:Web:HTML:Element:input#disabled|disabled]] атрибут, который можно назначить элементам ввода формы. (Это используется для отключения элементов ввода формы, чтобы пользователь не мог вводить данные. Отключенные элементы обычно отображаются серым цветом.) Например:
Для краткости допустимо записать это следующим образом:
Для справки: приведенный выше пример также включает неотключенный элемент ввода формы. HTML из приведенного выше примера дает такой результат:
====Пропуск кавычек вокруг значений атрибутов====
Если вы посмотрите на код многих других сайтов, вы можете встретить ряд странных стилей разметки, включая значения атрибутов без кавычек. Это разрешено при определенных обстоятельствах, но также может привести к нарушению вашей разметки при других обстоятельствах. Например, если мы вернемся к нашему предыдущему примеру со ссылкой, мы могли бы написать базовую версию только с атрибутом ''href'', вот так:
Ссылка на сайт
Ссылка на сайт
Однако как только мы добавляем атрибут ''title''таким образом, возникают проблемы:
Ссылка на сайт
Как написано выше, браузер неправильно интерпретирует разметку, принимая ''title'' атрибут за три атрибута: атрибут ''title'' со значением ''The'' и два логических атрибута ''Mozilla'' и ''homepage''. Очевидно, это не предназначено! Это приведет к ошибкам или неожиданному поведению, как вы можете видеть на живом примере ниже. Попробуйте навести курсор на ссылку, чтобы просмотреть текст заголовка!
Всегда включайте кавычки атрибутов. Это позволяет избежать таких проблем и приводит к более читабельному коду.
=====Одинарные или двойные кавычки?=====
В этой статье вы также заметите, что атрибуты заключены в двойные кавычки. Однако в некотором HTML-коде вы можете увидеть одинарные кавычки. Это вопрос стиля. Вы можете смело выбирать, какой из них вам больше по душе. Обе эти строки эквивалентны:
Ссылка на сайт
Ссылка на сайт#1
Ссылка на сайт#2
Убедитесь, что вы не смешиваете одинарные и двойные кавычки для одного атрибута. Этот пример (ниже) показывает своего рода смешение кавычек, которое может пойти не так (вместо ссылки https://www.mozilla.org/ получим
Ссылка на сайт#3
Однако если вы используете один тип кавычек, вы можете включить кавычки другого типа в значения атрибутов:
Ссылка на сайт#4
Чтобы использовать кавычки внутри других кавычек того же типа (одинарной или двойной кавычки), используйте сущности HTML (например ''"'' может быть интерпретирован как обрамляющая значение атрибута кавычка):
Ссылка на сайт#5
Пример неправильного использования кавычек внутри других кавычек значения атрибута (отредактируйте строку ниже в области ввода в окне редактора **
Ссылка на сайт#6
=====Анатомия HTML-документа=====
Отдельные элементы HTML сами по себе бесполезны. Далее давайте рассмотрим, как отдельные элементы объединяются, образуя целую HTML-страницу:
My test page
This is my page
Здесь у нас есть:
* '''': Тип документа. Когда HTML был молод (1991-1992), типы документов должны были действовать как ссылки на набор правил, которым должна была следовать HTML-страница, чтобы считаться хорошим HTML. Раньше типы документов выглядели примерно так:
В последнее время тип документа стал историческим артефактом, который необходимо включить, чтобы все остальное работало правильно. ''''— это кратчайшая строка символов, которая считается допустимым типом документа. Это все, что вам нужно знать!
* '''': [[software:development:web:docs:Web:HTML:Element:html|]] элемент. Этот элемент оборачивает все содержимое страницы. Иногда его называют корневым элементом.
* '''': [[software:development:web:docs:Web:HTML:Element:head|]] элемент. Этот элемент действует как контейнер для всего, что вы хотите включить в HTML-страницу, **а не для содержимого**, которое страница будет показывать зрителям. Сюда входят ключевые слова и описание страницы, которые будут отображаться в результатах поиска, CSS для стилизации контента, объявления наборов символов и многое другое. Подробнее об этом вы узнаете в следующей статье серии.
* '''': [[software:development:web:docs:Web:HTML:Element:meta|]] элемент. Этот элемент представляет метаданные, которые не могут быть представлены другими мета-элементами HTML, такими как [[software:development:web:docs:Web:HTML:Element:base|