Содержание

Структура документа и веб-сайта — Изучение веб-разработки

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

Необходимые знания:Базовое знакомство с HTML, описано в разделе Начало работы с HTML. Форматирование текста в HTML, описано в разделе Основы текста в HTML. Как работают гиперссылки, описано в разделе Создание гиперссылок.
Задача:Изучить, как структурировать документ с помощью семантических тегов и как разработать структуру простого веб-сайта.

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

Заголовок (колонтитул)
Обычно это большая полоса вверху страницы, с крупным заголовком и / или логотипом. Здесь указывается общая информация о веб-сайте, не меняющаяся от страницы к странице.
Навигационное меню
Ссылки на основные разделы сайта; обычно в виде кнопок, ссылок или вкладок. Также как и заголовок, навигация остается неизменной на всех страницах сайта — наличие непоследовательной навигации на Вашем сайте запутает и разочарует пользователей. Многие веб-дизайнеры считают панель навигации частью заголовка, а не отдельным компонентом, но это не является обязательным требованием; на самом деле, некоторые также утверждают, что их разделение на отдельные компоненты улучшает доступность, поскольку раздельная структура будет понятнее для людей, пользующихся считывателями экрана.
Основное содержимое
Большая область в центре страницы, содержащая, в основном, уникальный контент данной веб-страницы, например видео, которое вы хотите посмотреть, или рассказ, который вы читаете, или карту, которую вы хотите просмотреть, или заголовки новостей и т. д. Это одна из частей сайта, которая определенно будет меняться от страницы к странице!
Боковая панель
Как правило, содержит некоторую второстепенную информацию, ссылки, цитаты, рекламу и т. д. Обычно она относится к содержимому в основном контенте (например, на странице со статьей, боковая панель может содержать биографию автора или ссылки на связанные статьи), но в некоторых случаях здесь размещают и другие элементы, например, вторичную навигационную систему.
Нижний колонтитул (футер)
Полоса в нижней части страницы, которая обычно содержит уведомления об авторских правах или контактную информацию. Это место для размещения общей информации (например, заголовка), но обычно эта информация не является критичной или вторична для самого веб-сайта. Нижний колонтитул также иногда используется для SEO целей, предоставляя ссылки для быстрого доступа к популярному контенту.

«Типичный веб-сайт» может быть структурирован примерно так:

Пример, показанный сверху, не красив и примитивен, но идеально подходит для иллюстрирования типичного макета веб-сайта. У некоторых веб-сайтов больше колонок, некоторые — более сложные, но идею Вы поняли. С правильным CSS Вы могли бы использовать практически любые элементы для обёртывания различных разделов и стилизовать их так, как Вам хочется, но, как обсуждалось ранее, нам нужно уважать семантику и

использовать правильный элемент для правильной работы.  

Это потому, что визуальные эффекты — это ещё не самое главное. Мы используем цвет и размер шрифта для привлечения внимания посетителей к наиболее полезным частям содержимого, такого как навигационное меню или связанные ссылки, но что насчет людей со слабым зрением, к примеру, для которых концепция «розового» и «большого шрифта» не будет полезной?

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

Для реализации такой семантической разметки HTML предоставляет выделенные теги, которые можно использовать для создания таких разделов, например:

  • Заголовок: <header>.
  • Навигационное меню: <nav>.
  • Основное содержимое: <main>, с различными подразделами содержимого, представленными элементами <article>, <section> и <div>.
  • Боковая панель: <aside>, обычно располагается внутри <main>.
  • Нижний колонтитул: <footer>.

Активное обучение: исследование кода для нашего примера

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

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">

    <title>Заголовок моей страницы</title>
    <link href="https://fonts. googleapis.com/css?family=Open+Sans+Condensed:300|Sonsie+One" rel="stylesheet" type="text/css">
    <link rel="stylesheet" href="style.css">

    
    
  </head>

  <body>
    

    <header>
      <h2>Заголовок</h2>
    </header>

    <nav>
      <ul>
        <li><a href="#">Домашняя страница</a></li>
        <li><a href="#">Наша команда</a></li>
        <li><a href="#">Проекты</a></li>
        <li><a href="#">Контакты</a></li>
      </ul>

       

       <form>
         <input type="search" name="q" placeholder="Search query">
         <input type="submit" value="Go!">
       </form>
     </nav>

    
    <main>

      
      <article>
        <h3>Заголовок статьи</h3>

        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Donec a diam lectus. Set sit amet ipsum mauris.
Maecenas congue ligula as quam viverra nec consectetur ant hendrerit. Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur.</p> <h4>Подраздел</h4> <p>Donec ut librero sed accu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aenean ut gravida lorem. Ut turpis felis, pulvinar a semper sed, adipiscing id dolor.</p> <p>Pelientesque auctor nisi id magna consequat sagittis. Curabitur dapibus, enim sit amet elit pharetra tincidunt feugiat nist imperdiet. Ut convallis libero in urna ultrices accumsan. Donec sed odio eros.</p> <h4>Ещё один подраздел</h4> <p>Donec viverra mi quis quam pulvinar at malesuada arcu rhoncus. Cum soclis natoque penatibus et manis dis parturient montes, nascetur ridiculus mus. In rutrum accumsan ultricies. Mauris vitae nisi at sem facilisis semper ac in est.
</p> <p>Vivamus fermentum semper porta. Nunc diam velit, adipscing ut tristique vitae sagittis vel odio. Maecenas convallis ullamcorper ultricied. Curabitur ornare, ligula semper consectetur sagittis, nisi diam iaculis velit, is fringille sem nunc vet mi.</p> </article> <aside> <h3>Связанные темы</h3> <ul> <li><a href="#">Мне нравится стоять рядом с берегом моря</a></li> <li><a href="#">>Мне нравится стоять рядом с морем</a></li> <li><a href="#">Даже на севере Англии</a></li> <li><a href="#">Здесь не перестаёт дождь</a></li> <li><a href="#">Лаааадно...</a></li> </ul> </aside> </main> <footer> <p>©Авторские права никому не принадлежат, 2050. Все права защищены.
</p> </footer> </body> </html>

Потратьте некоторое время, чтобы просмотреть код и понять его — комментарии внутри кода также помогут Вам в этом. Мы не просим Вас делать ничего больше в этом уроке, потому что ключ к пониманию макета документа заключается в написании осмысленной структуры HTML, а затем её развёртывании с помощью CSS. Мы подождем, пока вы не начнете изучать CSS-макет как часть темы CSS.

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

  • <main> предназначен для содержимого, уникального для этой страницы. Используйте <main> только один раз на странице и размещайте прямо внутри <body>. В идеале он не должен быть вложен в другие элементы.
  • <article> окружает блок связанного содержимого, который имеет смысл сам по себе без остальной части страницы (например, один пост в блоге).
  • <section> подобен <article>, но больше подходит для группирования одной части страницы, которая представляет собой одну часть функциональности (например, мини-карту или набор заголовков статей и сводок). Считается хорошей практикой начинать каждый раздел с заголовка. Также обратите внимание, что в зависимости от контекста вы можете разбить <article> на несколько <section> или, наоборот, <section> на несколько <article>.
  • <aside> содержит контент, который не имеет прямого отношения к основному содержимому, но может содержать дополнительную информацию, косвенно связанную с ним (словарь, биография автора, связанные ссылки и т. д.).
  • <header> представляет собой группу вводного содержимого. Если он дочерний элемент <body>, то он определяет глобальный заголовок веб-страницы, но если он дочерний элемент <article> или <section>, то определяет конкретный заголовок для этого раздела (постарайтесь не путать его с titles и headings). 
  • <nav> содержит основные функции навигации для страницы. Так же часто в нем можно увидеть логотип и / или название сайта или компании. Вторичные ссылки и т. д. не входят в навигацию.
  • <footer> представляет собой группу конечного контента для страницы.

Несемантические обертки

Иногда Вы будете сталкиваться с ситуацией, когда Вы не можете найти идеальный семантический элемент, чтобы сгруппировать некоторые элементы вместе или обернуть некоторый контент. Иногда Вам просто нужно будет сгруппировать несколько элементов вместе, чтобы применить к ним, как к единой сущности, CSS или JavaScript. Для таких случаев в HTML есть элементы <div> и <span>. Вам следует использовать их с подходящим значением атрибута class или id, чтобы можно было легко получить к ним доступ.

<span> — это строчный несемантический элемент, который стоит использовать только если Вы не можете подобрать более подходящий семантический текстовый элемент для обёртывания контента или если не хотите добавлять какие-либо конкретные значения. Например:

<p>Пьяный Король возвратился в свою комнату в 01:00
и всё никак не мог войти в дверь: хмель мешал <span>[Примечание редактора: В этот момент
свет на сцене должен быть приглушён]</span>.</p>

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

<div> — это блочный несемантический элемент, который следует использовать только если Вы не можете подобрать более подходящий семантический блочный элемент или если не хотите добавлять какие-либо конкретные значения. Например, представьте виджет корзины в интернет-магазине, который Вы можете открыть в любой момент нахождения на сайте:

<div>
  <h3>Корзина</h3>
  <ul>
    <li>
      <p><a href=""><strong>Silver earrings</strong></a>: $99.95.</p>
      <img src="../products/3333-0985/thumb.png" alt="Серебряные серьги">
    </li>
    <li>
      ...
    </li>
  </ul>
  <p>Итого: $237.89</p>
</div>

Ему не подходит <aside>, поскольку это не обязательно относится к основному содержимому страницы (Вы хотите, чтобы его можно было просматривать из любого места). Также не подходит и  <section>, т. к. это не часть основного содержимого страницы. Поэтому <div> подходит в этом случае. Мы включили заголовок в качестве указателя, чтобы помочь пользователям программ чтения с экрана в его поиске.

Внимание: div настолько просто использовать, что легко переборщить. Поскольку они не несут никакого семантического значения, они просто загромождают Ваш HTML-код. Старайтесь использовать их только тогда, когда нет лучшего семантического решения, и постарайтесь свести их использование к минимуму, иначе Вам будет трудно обновлять и поддерживать Ваши документы.

Перенос строки и горизонтальный разделитель

Два элемента, которые Вы будете периодически использовать или захотите узнать о них: <br> и <hr>:

<br> создает разрыв строки в абзаце, и это единственный способ изменить жёсткую структуру в ситуации, когда Вам нужна серия фиксированных коротких строк, например, в почтовом адресе или стихотворении. Пример:

<p>Жила-была девчушка Нелл,<br>
Любившая писать HTML:<br>
Её семантика ужасна была — <br>
Она и сама прочитать ничего не могла.</p>

Без элемента <br> абзац  разместится в одну длинную линию (как было сказано ранее, HTML игнорирует переносы строк), а с ним в коде — разметка будет выглядеть следующим образом:

Жила-была девчушка Нелл,
Любившая писать HTML:
Её семантика ужасна была —
Она и сама прочитать ничего не могла.

<hr> создает горизонтальный разделитель в документе, это означает тематическое изменение текста (например, изменение темы или сцены). Визуально он просто похож на горизонтальную линию. В качестве примера:

<p>Рон был зажат в углу адскими тварями. Он боялся, но твёрдо решил защитить своих друзей, поднял свою волшебную палочку и приготовился к битве, надеясь, что справится со своим несчастьем.</p>
<hr>
<p>Тем временем Гарри сидел дома с раскрытым указом и размышлял о том, когда выйдут новые серии спин-оффов; в это время зачарованное письмо пархнуло в окно и приземлилось у него на коленях. Он прочитал его и подскочил на ноги; он подумал: "Думаю, самое время вернуться к работе".</p>

Будет выглядеть примерно так:

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


Тем временем Гарри сидел дома с раскрытым указом и размышлял о том, когда выйдут новые серии спин-оффов; в это время зачарованное письмо пархнуло в окно и приземлилось у него на коленях. Он прочитал его и подскочил на ноги; он подумал: «Думаю, самое время вернуться к работе».

Когда вы уже спланировали содержание одной веб-страницы, следующий логический шаг — продумать содержание всего веб-сайта: какие страницы нужны, как они будут устроены и связаны друг с другом для лучшего восприятия пользователем. Это называется Information architecture. В большом, сложном веб-сайте на планирование может уходить много времени, однако спроектировать простой веб-сайт из нескольких страниц может быть очень легко и весело!

  1. Имейте в виду, что у вас будет несколько элементов, общих для большинства (если не всех) страниц — например, меню навигации и содержимого нижнего колонтитула. Например, для сайта компании хорошая идея разместить контактные данные в нижнем колонтитуле на каждой странице. Составьте список элементов, общих для всех страниц.
  2. Теперь набросайте структуру страниц (можно взять за образец наш простой дизайн, приведенный раннее). Что находится в этих блоках?
  3. Теперь составьте список остальной (уникальной для каждой страницы) информации, которую вы разместите на сайте.
  4. Сгруппируйте информацию по темам. Какие части можно разместить на одной странице? Это похоже на метод Card sorting.
  5. Составьте карту сайта. Обведите каждую страницу рамкой, и продумайте перемещения пользователя между ними. Обычно в центре оказывается главная страница, с которой можно быстро перейти на все остальные. На небольшом сайте большинство страниц помещают в главную навигацию, но не обязательно класть туда все ссылки. Также можете пометить, как выглядят элементы страниц — ссылками, списками, карточками.

Самостоятельная работа: создайте свою собственную карту сайта

Приментие наш метод к своему сайту. О чем он будет?

Примечание: Сохраните свой код, он Вам ещё понадобится.

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

  • Using HTML sections and outlines: Продвинутый справочник по семантическим элементам и алгоритму выделения разделов (outline algorithm) в HTML5.

HTML Программный код



Надписи, выполненные моноширинными шрифтами, создаются с помощью тегов <code>, <kbd> и <samp>. Результаты применения этих тегов обычно идентичны: моноширинный шрифт с фиксированным размером символов и интервалов.

Тег

<code>

Тег <code> — cтрочный элемент-контейнер, который применяется для вставки в него небольших фрагментов программного кода, например, в веб-документе, представляющем учебное пособие по программированию. Браузеры отображают такой код моноширинным шрифтом (например, Courier New). Если использовать ero совместно с элементом <pre>, то можно сохранить исходное форматирование кода.

Тег <pre> служит для ввода текста без форматирования, то есть с сохранением всех пробелов, табуляций и переносов строк. Внутри этого элемента можно применять большинство элементов форматирования текста.

Внимание: В языке HTML переносы строк, идущие подряд пробелы и табуляции игнорируются. Несколько пробелов подряд воспринимаются как один пробел.

Пример: использования элементов

<pre> и <code>

Внутри элемента <pre> браузер дублирует каждый встреченный пробел или перенос строки, сохраняя ваше исходное форматирование.

if (document.getElementsByClassName) {
    x = document.getElementsByClassName("pagination")
    if ( x.length>y) {
      x.style.visibility = "hidden";
  }

Внутри элемента «pre» браузер дублирует каждый встреченный пробел или перенос строки, сохраняя ваше исходное форматирование.

<pre>
<code>
if (document.getElementsByClassName) {
    x = document.getElementsByClassName("pagination")
    if ( x.length>y) {
      x.style.visibility = "hidden";
  }
</code>
</pre>            

Теги

<kbd> и <samp>

Тег <kbd> отмечает фрагмент кода как вводимый пользователем с клавиатуры. Некоторые браузеры помечают такой текст дополнительным фоном.
Тег <samp> применяется для формирования компьютерного вывода, например, текста, отображаемого в консольном окне после ввода вами управляющего сценария. Этот редко используемый элемент просто выводит свое содержимое моноширинным шрифтом, как <kbd>, <pre>, <code>.

Пример: элементы

<kbd> и <samp>

Текст, который пользователь должен ввести с клавиатуры поместите
в элемент-контейнер «kbd».

Введите текст: Это — текст, вводимый с клавиатуры

Это — текст, который помещен в контейнер «samp»


<p>Текст, который пользователь должен ввести с клавиатуры поместите в
элемент-контейнер «kbd».</p> <p>Введите текст: <kbd>Это — текст, вводимый с клавиатуры</kbd></p> <p><samp>Это — текст, который помещен в контейнер «samp»</samp></p>

Тег

<var>

Тег <var> используется с целью дополнительного выделения переменных в программном коде. Он определяет переменную в математическом выражении или параметр программы и обычно отображается курсивом.

Пример: элементы

<var>

Кинетическая энергия тела:

Wк = mv2/2


<p>Кинетическая энергия тела:</p>
<p><var>W</var><sub>к</sub> = <var>m</var><var>v</var><sup>2</sup>/2</p>

Задачи

Итоговое задание

[21-24]

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

Пришло время повторить изученное и выполнить три несложных задания:

Переменная

Используя html-элементы обозначте в приведенном уравнении литеру y как переменную.

<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <title>Переменная</title>  
 </head>
 <body>
  <p>Уравнение параболы y = Nx<sup>2</sup></p>
 </body>
</html>
<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <title>Переменная</title>  
 </head>
 <body>
  <p>Уравнение параболы <var>y</var> = Nx<sup>2</sup></p>
 </body>
</html>

Предварительно отформатированный текст

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

<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <title>Предварительно отформатированный текст</title>  
 </head>
 <body>
  <p>Это бесконечная петля в Visual Basic:</p> 
    <code> 
        Do 
            X = X + 1 
        Loop Until X 
<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
   <title>Предварительно отформатированный текст</title>  
 </head>
 <body>
  <p>Это бесконечная петля в Visual Basic:</p> 
    <pre><code> 
        Do 
            X = X + 1 
        Loop Until X 

Программный код

Используя элемент HTML сделайте так, чтобы текст: «function close_menu() {}» отображался браузером как программный код.

<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <title>Программный код</title>  
 </head>
 <body>
  <p>Это функция: function close_menu() {}</p> 
 </body>
</html>
<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
   <title>Программный код</title>  
 </head>
 <body>
  <p>Это функция: <code>function close_menu() {}</code></p>
 </body>
</html>






Простой пример HTML документа — Учебник по основам HTML

Как устроен HTML-документ

HTML-документ — это просто текстовый файл с расширением *.html (Unix-системы могут содержать файлы с расширением *.htmll). Вот самый простой HTML-документ:

<html>
<head>
<title>Пример 1</title>
</head>
<body>
<h2>Привет!</h2>
<P> Это простейший пример HTML-документа. </P>
<P> Этот *.html-файл может быть одновременно открыт и в Notepad, и в Netscape. Сохранив изменения в Notepad, просто нажмите кнопку Reload ('перезагрузить') в Netscape, чтобы увидеть эти изменения реализованными в HTML-документе. </P>
</body>
</html>

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

<html>
<head>
<title>Пример 1</title>
</head>
<body>
<h2>Привет!</h2>
<P>Это простейший пример HTML-документа.</P>
<P>Этот *.html-файл может быть одновременно открыт и в Notepad, и в Netscape. Сохранив изменения в Notepad, просто нажмите кнопку Reload ('перезагрузить') в Netscape, чтобы увидеть эти изменения реализованными в HTML-документе. </P>
</body>
</html>

Как видно из примера, вся информация о форматировании документа сосредоточена в его фрагментах, заключенных между знаками «<» и «>». Такой фрагмент (например, <html>) называется меткой (по-английски — tag, читается «тэг»).

Большинство HTML-меток — парные, то есть на каждую открывающую метку вида <tag> есть закрывающая метка вида </tag> с тем же именем, но с добавлением «/».

Метки можно вводить как большими, так и маленькими буквами. Например, метки <body>, <BODY> и <Body> будут восприняты браузером одинаково.

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

Обязательные метки

<html> . .. </html>

Метка <html> должна открывать HTML-документ. Аналогично, метка </html> должна завершать HTML-документ.

<head> … </head>

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

<title> … </title>

Все, что находится между метками <title> и </title>, толкуется браузером как название документа. Netscape Navigator, например, показывает название текущего документа в заголовке окна и печатает его в левом верхнем углу каждой страницы при выводе на принтер. Рекомендуется название не длиннее 64 символов.

<body> … </body>

Эта пара меток указывает на начало и конец тела HTML-документа, каковое тело, собственно, и определяет содержание документа.

<h2> … </h2> — <H6> … </H6>

Метки вида <Hi> (где i — цифра от 1 до 6) описывают заголовки шести различных уровней. Заголовок первого уровня — самый крупный, шестого уровня, естественно — самый мелкий.

<P> … </P>

Такая пара меток описывает абзац. Все, что заключено между <P> и </P>, воспринимается как один абзац.

Метки <Hi> и <P> могут содержать дополнительный атрибут ALIGN (читается «элайн», от английского «выравнивать»), например:

<h2 ALIGN=CENTER>Выравнивание заголовка по центру</h2>

или

<P ALIGN=RIGHT>Образец абзаца с выравниванием по правому краю</P>

Подытожим все, что мы знаем, с помощью примера 2:

<html>
<head>
<title>Пример 2</title>
</head>
<body>
<h2 ALIGN=CENTER>Привет!</h2>
<h3>Это чуть более сложный пример HTML-документа</h3>
<P>Теперь мы знаем, что абзац можно выравнивать не только влево, </P>
<P ALIGN=CENTER>но и по центру</P>
<P ALIGN=RIGHT>или по правому краю. </P>
</body>
</html>

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

Как писать код и сразу видеть результат

Когда толь­ко начи­на­ешь про­грам­ми­ро­вать и делать сай­ты, важ­но пони­мать, что вооб­ще про­ис­хо­дит. Вот изме­нил ты пара­метр объ­ек­та — а пра­виль­но или нет? Зара­бо­та­ло это или нет? Кра­си­во вышло или ужасно?

Что­бы раз­ра­бот­чик сра­зу видел резуль­тат тру­да, боги созда­ли для него IDE — integrated development environment, по-русски — сре­ду раз­ра­бот­ки. Это про­грам­ма, в кото­рой про­грам­мист пишет код, ловит ошиб­ки и наблю­да­ет результат.

Чисто тех­ни­че­ски рабо­тать мож­но и без IDE: писать код в блок­но­те и про­смат­ри­вать его в спе­ци­аль­ных про­грам­мах или бра­у­зе­ре. Но это быва­ет мед­лен­но и тре­бу­ет допол­ни­тель­ных тело­дви­же­ний. Луч­ше научить­ся поль­зо­вать­ся IDE и писать в сто раз быстрее.

Выбор сре­ды раз­ра­бот­ки (IDE) — дело вку­са и при­выч­ки. Какие-то из них — уни­вер­саль­ные, дру­гие зато­че­ны под кон­крет­ные язы­ки про­грам­ми­ро­ва­ния. IDE часто похо­жи по сво­им воз­мож­но­стям и поз­во­ля­ют уве­ли­чи­вать функ­ци­о­наль­ность за счёт внеш­них дополнений.

Visual Studio Code

Про­грам­му мож­но ска­чать с офи­ци­аль­но­го сай­та. Несмот­ря на то, что VS Code дела­ет Мик­ро­софт, это бес­плат­ный про­дукт с откры­тым исход­ным кодом, доступ­ный на всех плат­фор­мах. Бла­го­да­ря это­му и сво­им воз­мож­но­стям VS Code стал одной из самых попу­ляр­ных сред для раз­ра­бот­ки в мире.

VS Code рас­по­зна­ёт почти все суще­ству­ю­щие язы­ки про­грам­ми­ро­ва­ния, само­сто­я­тель­но или с помо­щью пла­ги­нов, и фор­ма­ти­ру­ет их соот­вет­ству­ю­щим обра­зом. Кро­ме это­го, у него глу­бо­кая под­держ­ка HTML, CSS, JavaScript и PHP — он про­сле­дит за пар­ны­ми тега­ми, закры­ты­ми скоб­ка­ми и ошиб­ка­ми в командах.

Вот самые инте­рес­ные воз­мож­но­сти VS Code.

Умное авто­до­пол­не­ние. Про­грам­ма ана­ли­зи­ру­ет, какую коман­ду вы хоти­те вве­сти, и пред­ла­га­ет закон­чить фра­зу за вас, с под­сказ­ка­ми и объ­яс­не­ни­ем. Удоб­но, если вы забы­ли поря­док сле­до­ва­ния пере­мен­ных или как точ­но зву­чит нуж­ная команда:

Выпол­не­ние скрип­тов по шагам. Ино­гда нуж­но иметь воз­мож­ность выпол­нить скрипт не сра­зу, а по шагам, напри­мер, что­бы понять, не зацик­ли­лась ли наша про­грам­ма. Для это­го исполь­зуй­те встро­ен­ный дебаг­гер — это про­грам­ма, кото­рая сле­дит за кодом, ищет в нём ошиб­ки и поз­во­ля­ет выпол­нять его поэтапно.

Мно­же­ствен­ное выде­ле­ние и поиск. Что­бы поме­нять мно­го оди­на­ко­вых зна­че­ний пере­мен­ных или най­ти все оди­на­ко­вые сло­ва или коман­ды, VS Code исполь­зу­ет свой алго­ритм обра­бот­ки. Бла­го­да­ря это­му редак­ти­ро­вать код ста­но­вит­ся про­ще, а заме­на функ­ций или пере­мен­ных про­ис­хо­дит быстрее.

Муль­ти­кур­сор помо­га­ет вво­дить оди­на­ко­вые зна­че­ния сра­зу на несколь­ких строках

Най­ден­ные оди­на­ко­вые сло­ва и коман­ды мож­но тут же заме­нить на другие

Нави­га­ция по коду и опи­са­ния функ­ций. Когда пишешь боль­шую про­грам­му, лег­ко забыть то, что делал в нача­ле — как рабо­та­ет функ­ция или како­го типа пере­мен­ная исполь­зу­ет­ся в этом месте. Что­бы это­го избе­жать, VS Code может пока­зы­вать саму функ­цию, опи­са­ние пере­мен­ной или какие пара­мет­ры пере­да­ют­ся при вызо­ве коман­ды. Ещё это при­го­дит­ся, если код достал­ся вам по наслед­ству от про­шло­го раз­ра­бот­чи­ка и нуж­но быст­ро понять, какие кус­ки кода за что отве­ча­ют и как работают:

Сра­зу после уста­нов­ки VS Code не уме­ет пока­зы­вать резуль­та­ты рабо­ты кода, когда мы дела­ем веб-страницы. Это мож­но испра­вить с помо­щью рас­ши­ре­ния Live HTML Previewer. Для это­го захо­дим в раз­дел «Extensions», щёл­кая на послед­нем знач­ке на пане­ли сле­ва или нажи­мая Ctrl+Shift+X, и начи­на­ем писать «Live HTML Previewer» в стро­ке поиска.

После уста­нов­ки и запус­ка рас­ши­ре­ния мож­но будет сра­зу видеть, как ваш HTML-код и CSS вли­я­ют на внеш­ний вид и пове­де­ние стра­ни­цы. Это осо­бен­но удоб­но, когда стро­ишь сайт с нуля и хочешь сра­зу пони­мать, что происходит.

WebStorm

Сре­да раз­ра­бот­ки для JavaScript от ком­па­нии jetBrains сто­ит денег, но есть проб­ный пери­од в 30 дней. Вполне хва­тит, что­бы попро­бо­вать и понять, нуж­на эта про­грам­ма или нет.

Авто­под­ста­нов­ка. Неко­то­рые IDE с авто­под­ста­нов­кой тор­мо­зят и не пред­ла­га­ют сра­зу все вари­ан­ты пере­мен­ных или команд — но не WebStorm. Здесь всё рабо­та­ет с пер­вой бук­вы и пони­ма­ет, когда надо пред­ло­жить пере­мен­ную, а когда коман­ду или слу­жеб­ное слово:

Встро­ен­ная систе­ма задач. Полез­но, когда в рабо­те мно­го про­ек­тов и нуж­но по каж­до­му пом­нить, что ты хотел в нём сде­лать. Здесь это реа­ли­зо­ва­но сра­зу и доступ­но для любо­го файла:

Про­вер­ка оши­бок. WebStorm уме­ет сам про­ве­рять код на ошиб­ки и пояс­нять каж­дую из них. Не все­гда это рабо­та­ет иде­аль­но, но когда рабо­та­ет — эко­но­мит кучу времени:

Что­бы сра­зу видеть, что полу­ча­ет­ся на стра­ни­це, нам пона­до­бит­ся пла­гин LiveEdit. По умол­ча­нию он выклю­чен, но его мож­но вклю­чить или поста­вить отдель­но в любое вре­мя. После акти­ва­ции нуж­но будет в настрой­ках пла­ги­на поста­вить галоч­ку «Update application in Chrome on changes in» — она как раз отве­ча­ет за обнов­ле­ние инфор­ма­ции в бра­у­зе­ре Chrome. Теперь мож­но писать код и сра­зу видеть результат:

Sublime Text 3

Бес­плат­ный редак­тор, кото­рый назой­ли­во пред­ла­га­ет зане­сти денег раз­ра­бот­чи­кам. Про Sublime Text у нас есть отдель­ная и более подроб­ная ста­тья — почи­тай­те, там тоже интересно.

Sublime Text — потря­са­ю­ще мощ­ный тек­сто­вый редак­тор. Его сила — в ско­ро­сти рабо­ты, он оди­на­ко­во быст­ро обра­бо­та­ет про­стую веб-страничку или про­грам­му на сто тысяч строк кода. Под­свет­ка син­так­си­са всех воз­мож­ных язы­ков про­грам­ми­ро­ва­ния, авто­под­ста­нов­ка, умное закры­тие тегов — всё это доступ­но сра­зу после установки.


При­мер раз­мет­ки HTML-кода в Sublime Text 

Вот что ещё уме­ет про­грам­ма сра­зу после установки:

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

Вто­рая супер­спо­соб­ность, кото­рая пре­вра­ща­ет Sublime Text из про­сто­го тек­сто­во­го редак­то­ра в уни­вер­саль­ное реше­ние, — пла­ги­ны. По прин­ци­пу дей­ствия они такие же, как и в дру­гих про­грам­мах из обзо­ра, но они совер­шен­но не вли­я­ют на ско­рость рабо­ты. Когда начи­на­ешь плот­но рабо­тать с Sublime Text, может пока­зать­ся, что у него есть пла­ги­ны для все­го. Нуж­но редак­ти­ро­вать одно­вре­мен­но один и тот же код, но в раз­ных пане­лях — пожа­луй­ста, напи­сать быст­ро HTML-код — само собой, про­ве­рить код на ошиб­ки и недо­чё­ты — без проблем.

Emmet сокра­ща­ет вре­мя на напи­са­ние кода, под­став­ляя вме­сто стан­дарт­ных команд целые кус­ки гото­во­го кода

JavaScript & NodeJS Snippets упро­ща­ет напи­са­ние кода на JavaScript и рабо­та­ет по тому же прин­ци­пу, что и Emmet

SublimeCodeIntel помо­га­ет быст­ро разо­брать­ся в коде со мно­же­ством функ­ций. Если щёлк­нуть на назва­ние любой функ­ции, пла­гин сра­зу пока­жет вам её описание.

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

Сра­зу после уста­нов­ки он это­го делать не уме­ет, но нам помо­жет пла­гин LiveReload. Он пока­зы­ва­ет все изме­не­ния в бра­у­зе­ре, как толь­ко мы сохра­ня­ем рабо­чий файл с кодом. Это не так изящ­но, как в VS Code, но в слу­чае с Sublime Text про­сти­тель­но. Дело в том, что при­вык­нув одна­жды писать в нём код, слож­но пере­сесть на что-то дру­гое, что рабо­та­ет с той же ско­ро­стью. Уста­нов­ка LiveReload состо­ит из двух ком­по­нен­тов — пла­гин для Sublime Text и рас­ши­ре­ние для браузера.

После уста­нов­ки давай­те посмот­рим, что у нас полу­чи­лось. Созда­дим файл tested.html в Sublime Text, раз­ме­тим его внут­ри стан­дарт­ным шаб­ло­ном как HTML-документ, а рядом откро­ем окно браузера.

В реаль­ном вре­ме­ни мы не уви­дим на стра­ни­це те изме­не­ния, кото­рые вно­сим в код, как это было в VS Code. Но если нажать Ctrl+S, что­бы сохра­нить все дан­ные, то бра­у­зер момен­таль­но пока­зы­ва­ет то, что мы сделали.

Если вы серьёз­но настро­е­ны про­грам­ми­ро­вать, при­смот­ри­тесь к Visual Studio Code. Почти со всем он справ­ля­ет­ся сам или с пла­ги­на­ми, не нуж­но под­клю­чать допол­ни­тель­но бра­у­зе­ры или сто­рон­ний софт.

Люби­те, что­бы после уста­нов­ки были доступ­ны почти все нуж­ные функ­ции? Попро­буй­те WebStorm — плат­ную, но мощ­ную сре­ду разработки.

Если вам важ­на ско­рость рабо­ты в любых ситу­а­ци­ях, то Sublime Text — луч­ший выбор. Он очень быст­рый, и для него есть пла­ги­ны почти на все слу­чаи жизни.

Установка HTML-кода (скрипта) онлайн-консультанта Webim на сайт

На этом шаге вы внедрите HTML-код онлайн-консультанта Webim на сайт. В результате на страницах вашего сайта появится кнопка вызова оператора и/или приглашение к чату.

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

  1. На странице Панели управления Кнопки и размещения выделите подготовленный сервисом Webim HTML-код и скопируйте его в буфер обмена:
     

    Копирование HTML-кода кнопки:

  2. Откройте средства управления кодом вашего сайта. Нужно обладать полномочиями редактирования его веб-страниц и/или шаблонов.
    • Если редактирование шаблонов осуществляется через административный интерфейс (например, в WordPress), войдите в административный интерфейс управления сайтом.
    • Если редактирование шаблонов осуществляется через модификацию файлов шаблонов в специальном формате (например, в Django), войдите в хранилище файлов проекта и найдите файлы шаблонов. Мы рекомендуем создать для кода Webim отдельный файл и включать его в шаблоны с помощью директивы include.
    • Если редактирование HTML-разметки осуществляется непосредственно в коде веб-страниц (например, в narod.ru), откройте файлы страниц в HTML-редакторе.
  3. Вставьте код из буфера обмена в подходящее место шаблона. Мы рекомендуем разместить код Webim в общем шаблоне, используемом на всех страницах сайта. Тогда это нужно будет сделать только один раз. Разместите код кнопки внутри тега body в самом низу (в подвале, перед закрывающим тегом).
     

    Размещение HTML-кода сервиса Webim:

  4. Откройте свой сайт в браузере и проверьте, что на страницах появилась кнопка сервиса Webim.

Сервис Webim готов к работе.

Глава 4: DjangoBook по-русски | Django на русском

Глава 4. Шаблоны

Перевод © Попов Руслан <ruslan.popov • gmail>

В предыдущей главе вы могли заметить что-то особенное в том, как мы возвращали текст в наших представлениях. А именно, HTML был напрямую вбит в код на Python, примерно так:

def current_datetime(request):
    now = datetime.datetime.now()
    html = "<html><body>It is now %s.</body></html>" % now
    return HttpResponse(html)

Несмотря на то, что данный подход был удобен для объяснения принципов работы представления, он не может быть признан годным для использования в реальных проектах. И вот почему:

  • Любое изменение в дизайне страницы требует изменения в коде. Дизайн сайта изменяется гораздо чаще, чем сам код сайта. Удобнее будет иметь возможность вносить изменения в дизайн, не затрагивая код.

  • Разработка кода на языке Python и работа с HTML являются двумя различными дисциплинам и наиболее профессиональные среды web-разработки разделяют такую ответственность между отдельными людьми (или даже отдельными подразделениями). От дизайнеров и HTML/CSS кодеров не следует требовать редактирования Python кода для выполнения их работы.

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

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

Основы шаблонной системы

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

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

<html>
<head><title>Ordering notice</title></head>

<body>

<h2>Ordering notice</h2>

<p>Dear {{ person_name }},</p>

<p>Thanks for placing an order from {{ company }}. It's scheduled to
ship on {{ ship_date|date:"F j, Y" }}.</p>

<p>Here are the items you've ordered:</p>

<ul>
{% for item in item_list %}
    <li>{{ item }}</li>
{% endfor %}
</ul>

{% if ordered_warranty %}
    <p>Your warranty information will be included in the packaging. </p>
{% else %}
    <p>You didn't order a warranty, so you're on your own when
    the products inevitably stop working.</p>
{% endif %}

<p>Sincerely,<br />{{ company }}</p>

</body>
</html>

Данный шаблон представляет собой обычный HTML с несколькими переменными и шаблонными тегами. Рассмотрим его подробнее:

  • Любой текст взятый в скобки (т.е., {{ person_name }}) является переменной. Это означает «вставить значение переменной с указанным именем.» (Как же мы определяем значения переменных? Скоро мы это рассмотрим.)

  • Любой текст взятый в фигурные скобки и проценты (т.е., {% if ordered_warranty %}) является шаблонным тегом. Определение тега достаточно простое: тег просто указывает шаблонной системе «сделать что-то.»

    Вышеприведёный шаблон содержит тег for ({% for item in item_list %}) и тег if ({% if ordered_warranty %}).

    Тег for работает почти так же как и оператор for языка Python, позволяя вам циклически обрабатывать каждый элемент последовательности. Тег if, как вы можете ожидать, работает аналогично логическому оператору if. В данном примере, тег проверяет является ли True значением ordered_warranty. Если это так, шаблонная система отобразит всё, что находится между {% if ordered_warranty %} и {% else %}. В противном случае, шаблонная система отобразит всё между {% else %} и {% endif %}. Следует отметить, что элемент {% else %} является необязательным.

  • Наконец, второй параграф данного шаблона содержит пример использования фильтра, который предоставляет наиболее удобный способ изменения формата переменной. В данном примере, {{ ship_date|date:»F j, Y» }}, мы передаём значение переменной ship_date фильтру date, указывая для него аргументы «F j, Y». Фильтр date форматирует дату в соответствии с указанным форматом. Фильтры подключаются к переменным с помощью символа |, аналогично Unix потокам.

Каждый шаблон Django имеет доступ к некоторому количеству встроенных тегов и фильтров, многие из которых будут рассмотрены в последующих разделах главы. Приложение F FIXME содержит полный список тегов и фильтров, будет неплохо, если вы ознакомитесь с этим списком. Также есть возможность создавать свои собственный фильтры и теги, мы рассмотрим это в главе 9 FIXME.

Входной и выходной HTML-код на страницах OneNote — Microsoft Graph

  • Чтение занимает 12 мин

В этой статье

HTML-код, определяющий содержимое и структуру страницы при создании или обновлении страницы OneNote, называется входным HTML-кодом. The HTML that defines the page content and structure when you create or update a OneNote page is called input HTML.

HTML-код, возвращаемый при получении содержимого страницы, называется выходным HTML-кодом.The HTML that’s returned when you get page content is called output HTML. Выходной HTML-код не совпадает со входным.Output HTML won’t be the same as input HTML.

API OneNote в Microsoft Graph сохраняют семантическое содержимое и базовую структуру входного HTML-кода, но преобразовывают ее в набор поддерживаемых элементов HTML и свойств CSS.The OneNote APIs in Microsoft Graph preserve the semantic content and basic structure of the input HTML, but convert it to a set of supported HTML elements and CSS properties. API также добавляют настраиваемые атрибуты, поддерживающие функции OneNote.The APIs also add custom attributes that support OneNote features.

В этой статье описываются основные элементы и атрибуты входного и выходного HTML-кода.This article describes the principal elements and attributes of input and output HTML. Разбираться во входном HTML-коде полезно при создании и обновлении содержимого страницы, а в выходном — при анализе возвращаемого содержимого страницы.It can be helpful to understand input HTML when you’re creating or updating page content, and output HTML when you’re parsing returned page content.

Элемент bodybody element

HTML-содержимое в тексте страницы представляет ее содержимое и структуру, в том числе ресурсы изображений и файлов.The HTML content in the page body represents the page content and structure, including image and file resources. Входной и выходной HTML-код для элемента body может содержать перечисленные ниже атрибуты.The body element can contain the following attributes in the input and output HTML.

Входные атрибутыInput attributes
Входной атрибутInput attributeОписаниеDescription
data-absolute-enableddata-absolute-enabledУказывает, поддерживают ли во входном тексте элементы с абсолютным положением. Indicates whether the input body supports absolute positioned elements.
stylestyle

Свойства CSS style для основного текста.The CSS style properties of the body. В выходном HTML-коде входные параметры могут быть встроены в соответствующие дочерние элементы.In the output HTML, input settings might be returned inline on appropriate child elements.

В настоящее время цвет фона не поддерживается для элемента body.Background color is not currently supported for the body element.

Выходные атрибутыOutput attributes
Выходной атрибутOutput attributeОписаниеDescription
data-absolute-enableddata-absolute-enabledУказывает, поддерживаются ли в тексте элементы с абсолютным положением.Indicates whether the body supports absolute positioned elements. В выходном HTML-коде всегда задано значение true.Always true in output HTML.
stylestyleСвойства font-family и font-size основного текста.The font-family and font-size properties of the body.

Элементы divdiv elements

Элементы div содержат текст, изображения и другой контент.Div elements contain text, images, and other content. Входной и выходной HTML-код для элемента div может содержать перечисленные ниже атрибуты.A div element can contain the following attributes in the input and output HTML.

Входные атрибутыInput attributes
Входной атрибутInput attributeОписаниеDescription
data-iddata-idСсылка на элемент.A reference for the element.

Используется для обновления содержимого страницы.Used to update page content.

data-render-fallbackdata-render-fallbackРезервное действие в случае ошибки извлечения: render (по умолчанию) или noneThe fallback action if the extraction fails: render (default) or none
data-render-methoddata-render-methodВыполняемый метод извлечения, напримерThe extraction method to perform, for example:
extract. businesscard или extract.recipeextract.businesscard or extract.recipe
data-render-srcdata-render-srcИсточник контента для извлечения.The content source for the extraction.
stylestyleСвойства положения, размера, шрифта и цвета для элемента div:The position, size, font, and color properties for the div:
  • position (только значение absolute), left, top и width (высота элементов Div настраивается автоматически).position (absolute only), left, top, and width (height is auto-configured for divs)

    Используется для создания элемента div с абсолютным положением, только если он является непосредственным дочерним элементом основного текста, для которого задан атрибут data-absolute-enabled="true".Used to create an absolute positioned div, only if the div is a direct child of the body when the body sets data-absolute-enabled="true".

    Пример: <div ... />Example: <div ... />

  • Свойства CSS style элемента. В выходных данных HTML эти значения возвращаются встроенными в соответствующие дочерние элементы.The CSS style properties of the element. In the output HTML, these values are returned inline on appropriate child elements.

API OneNote в Microsoft Graph заключают все содержимое основного текста по крайней мере в один элемент div.The OneNote APIs in Microsoft Graph wrap all body content in at least one div. API создает разделитель по умолчанию (с атрибутом data-id="_default") для содержимого основного текста, если:The API creates a default div (attributed with data-id="_default") to contain the body content if:

  • Входной атрибут data-absolute-enabled элемента body пропущен или для него задано значение false.The input body element’s data-absolute-enabled attribute is omitted or set to false. В этом случае все содержимое основного текста помещается в разделитель по умолчанию.In this case, all body content is put in the default div.

  • Для входного атрибута data-absolute-enabled элемента body задано значение true, но входной HTML-код содержит непосредственные дочерние элементы div, img или object без абсолютного положения.The input body element’s data-absolute-enabled attribute is true, but the input HTML contains direct children that aren’t absolute positioned div, img, or object elements. В этом случае непосредственные дочерние элементы  div, img или object без абсолютного положения помещаются в элементы div по умолчанию.In this case, direct children that aren’t absolute positioned div, img, or object elements are put in the default div.

Выходные атрибутыOutput attributes

Вспомогательные разделителиNon-contributing divs

Если элемент div во входных данных HTML не входит в структуру страницы и не переносит сведения, используемые приложением OneNote, API перемещает содержимое разделителя в родительский или используемый по умолчанию разделитель.When a div element in the input HTML does not contribute to the page structure or carry information that OneNote uses, the API moves the div’s content into the parent or default div. Этот процесс показан в приведенных ниже примерах.This is illustrated in the following examples.

Входной HTML-кодInput HTML

Содержит вспомогательный вложенный разделитель.Contains a non-contributing, nested div.

<html>
    <head>
        <title>Page Title</title>
    </head>
    <body>
        <div>
            <p>Some text</p>
            <div>
                <p>More text inside a div that doesn't define page structure</p>
            </div>
        </div>
    </body>
</html>
Выходной HTML-кодOutput HTML

Примечание. Содержимое разделителя было перемещено в родительский разделитель, а вложенные теги <div> удалены.Note: The div’s content was moved to the parent div and the nested <div> tags have been removed. Элемент div был бы сохранен, если бы в нем были определены какие-либо семантические сведения, такие как data-id (пример: <div data-id="keep-me">).The div would have been preserved if it defined any semantic information, such as a data-id (example: <div data-id="keep-me">).

<html htmlns="https://www.w3.org/1999/xhtml" lang="en-US">
    <head>
        <title>Page Title</title>
    </head>
    <body data-absolute-enabled="true">
        <div data-id="_default">
            <p>Some text</p>
            <p>More text inside a nested div</p>
        </div>
    </body>
</html>

Элементы imgimg elements

Для представления изображений на страницах OneNote используются элементы img. Images on OneNote pages are represented by img elements. Входной и выходной HTML-код для элемента img может содержать перечисленные ниже атрибуты.An img element can contain the following attributes in the input and output HTML.

Входные атрибутыInput attributes
Входной атрибутInput attributeОписаниеDescription
altaltПредоставленный замещающий текст для изображения.The supplied alt text for the image.
data-iddata-idСсылка на элемент.A reference for the element.

Используется для обновления содержимого страницы.Used to update page content.

data-render-srcdata-render-srcДолжно было задано значение data-render-src или src.Either data-render-src or src is required.

Веб-страница, которая будет отображаться в виде битового изображения на странице OneNote:The webpage to render as a bit-mapped image on the OneNote page:

data-render-src="https://. .." для общедоступного URL-адреса.- data-render-src="https://..." for a public URL.

data-render-src="name:BlockName" для части изображения в блоке Presentation составного запроса.- data-render-src="name:BlockName" for an image part in the «Presentation» block of a multipart request.

Этот метод удобно использовать, если веб-страница слишком сложна для достоверного отображения в OneNote или для использования страницы необходимы учетные данные.This method is useful when the webpage is more complex than the OneNote page can faithfully render, or when the page requires login credentials.

data-tagdata-tagТег заметки для элемента.A note tag on the element.
stylestyleСвойства положения и размера изображения: position (только absolute), left, top, width и height.The position and size properties for the image: position (absolute only), left, top, width, and height.

Размер можно задать для любого изображения.Size can be set on any image.

Свойства положения используются для создания изображения с абсолютным положением, только если изображение является непосредственным дочерним элементом основного текста, для которого задан атрибут data-absolute-enabled="true".Position properties are used to create an absolute positioned image, only if the image is a direct child of the body when the body sets data-absolute-enabled="true".

Пример: <img ... />Example: <img ... />

В выходном HTML-коде размеры изображения возвращаются по отдельности через атрибуты width и height.In the output HTML, the image size is returned separately in width and height attributes.

srcsrcДолжно было задано значение src или data-render-src.Either src or data-render-src is required.

Изображение, отображаемое на странице OneNote:The image to render on the OneNote page:

src="https://...": URL-адрес общедоступного изображения в Интернете.- src="https://..." for a URL to a publicly available image on the Internet.

src="name:BlockName": именованная часть составного запроса, представляющая изображение.- src="name:BlockName" for a named part in a multipart request that represents the image.

width, heightwidth, heightШирина и высота изображения в пикселях, но без обозначения px.The width or height of the image, in pixels but without the px. Пример: width="400"Example: width="400"

Примечание. API OneNote автоматически определяют тип входного изображения и возвращают его в качестве атрибута data-fullres-src-type в выходном HTML-коде.Note: The OneNote APIs automatically detect the input image type, and return it as the data-fullres-src-type in the output HTML. API также возвращает тип оптимизированного изображения в атрибуте data-src-type.The API also returns the image type of the optimized image in data-src-type.

Выходные атрибутыOutput attributes
Выходной атрибутOutput attributeОписаниеDescription
altaltПредоставленный замещающий текст для изображения.The supplied alt text for the image.
data-iddata-idСсылка на элемент.A reference for the element.

Используется для обновления содержимого страницы.Used to update page content.

data-indexdata-indexПоложение изображения. Для поддержки разделения изображений.The position of the image. For split image support.
data-fullres-srcdata-fullres-srcКонечная точка версии изображения, которая была изначально внедрена на странице.The endpoint for the version of the image resource that was originally embedded in the page.
data-fullres-src-typedata-fullres-src-typeТип мультимедиа для ресурса data-fullres-src, например image/png или image/jpeg.The media type of the data-fullres-src resource, for example: image/png or image/jpeg.
data-optionsdata-optionsТип источника: printout для PDF-файлов или splitimage для всех остальных. Применяется только к разделенным изображениям, созданным с помощью атрибута data-render-src.The source type: printout for PDF files or splitimage for all others. Applies only to split images created with the data-render-src attribute.
data-render-original-srcdata-render-original-srcИсходный URL-адрес источника изображения, если исходное изображение находится в общедоступной части Интернета и создано с использованием атрибута data-render-src. The original source URL of the image, if the source image is from the public internet and was created with the data-render-src attribute.
data-src-typedata-src-typeТип мультимедиа для ресурса src, например image/png или image/jpeg.The media type of the src resource, for example: image/png or image/jpeg.
data-tagdata-tagТег заметки для элемента.A note tag on the element.
ididУникальный сгенерированный ИД элемента.A unique, generated ID for the element. Возвращается запросами GET к конечной точке content страницы при использовании параметра запроса includeIDs=true.Returned by GET requests to a page’s content endpoint when the includeIDs=true query option is used.

Используется для обновления содержимого страницы.Used to update page content.

srcsrcКонечная точка версии изображения, оптимизированного для веб-браузеров, а также мобильных телефонов и планшетов. The endpoint for the version of the image resource that has been optimized for web browsers and mobile and tablet form factors.
stylestyleСвойства позиции изображения.The position properties of the image.
width, heightwidth, heightШирина или высота изображения в пикселях.The width or height of the image, in pixels.

Примеры выходного HTML-кода для изображенийOutput HTML examples for images

Выходные элементы img содержат конечные точки для ресурсов файлов изображений и типа изображения, как показано ниже.Output img elements contain endpoints for image file resources and the image type, as shown below. Вы можете отправлять отдельные запросы GET к конечным точкам ресурсов изображений, чтобы получать их двоичное содержимое.You can make separate GET requests to image resource endpoints to retrieve their binary contents.

<img 
    src="https://graph. microsoft.com/v1.0/me/onenote/resources/{image-id}/$value"  
    data-src-type="image/png"
    data-fullres-src="https://graph.microsoft.com/v1.0/me/onenote/resources/{image-id}/$value"  
    data-fullres-src-type="image/png" ... />

В приведенных ниже примерах показаны сведения, которые может содержать элемент img в выходном HTML-коде.The following examples show the information an img element might contain in the output HTML.

Изображение с ресурсами высокого разрешения для ИнтернетаImage with web-ready and high resolution resources
<img
    src="{web-ready-image-resource-url}/$value"
    data-src-type="image/{type}"
    data-fullres-src="{high-resolution-image-resource-url}/$value"
    data-fullres-src-type="image/{type}"
    [data-render-original-src="{original-source-url-or-named-part}"]
    [data-id="{image-id}"]
    [alt="supplied alt text"]
    [width="345"] [height="180"]
    [style="..."] />
Изображение, созданное с использованием атрибута
data-render-srcImage created by using the data-render-src attribute
<img
    src="{web-ready-image-resource-url}/$value"
    data-src-type="image/{type}"
    data-fullres-src="{high-resolution-image-resource-url}/$value"
    data-fullres-src-type="image/{type}"
    data-render-original-src="{original-source-url-or-named-part}"
    [data-id="{image-id}"]
    [data-index="{index-of-split-image}"]
    [data-options="{printout-or-splitimage}"]
    [alt="supplied alt text"]
    [width="1024"] [height="1900"]
    [style=". .."] />

Разделенные изображенияSplit images

Изображения, созданные с использованием атрибута data-render-src (из URL-адреса страницы или именованной части), могут быть разделены на несколько компонентов для повышения производительности и удобства отрисовки.Images that are created using the data-render-src attribute (from a webpage URL or a named part) might be split into multiple component images for performance and rendering reasons. Всем компонентам изображения назначается одно и то же значение data-id.Component images are all assigned the same data-id value. У каждого компонента изображения есть атрибут data-index с отсчетом от нуля, определяющий исходную вертикальную компоновку.Each component image has a zero-based data-index attribute that defines the original vertical layout.

Разделенное изображение с тремя компонентамиSplit image with three component images
<div data-id="multi-component-image">
    <img
        src="{image-resource0-url}/$value"
        data-src-type="image/{type}"
        data-fullres-src="{image-resource0-url}/$value" 
        data-fullres-src-type="image/{type}" 
        data-index="0" 
        data-render-original-src="{original-source-url-or-named-part}"
        data-id="{same-image-id}" . .. />
    <img 
        src="{image-resource1-url}/$value" 
        data-src-type="image/{type}" 
        data-fullres-src="{image-resource1-url}/$value" 
        data-fullres-src-type="image/{type}" 
        data-index="1" 
        data-render-original-src="{original-source-url-or-named-part}"
        data-id="{same-image-id}" ... />
    <img 
        src="{image-resource2-url}/$value" 
        data-src-type="image/{type}" 
        data-fullres-src="{image-resource2-url}/$value" 
        data-fullres-src-type="image/{type}" 
        data-index="2" 
        data-render-original-src=""{original-source-url-or-named-part}"
        data-id="{same-image-id}" ... />
</div>

Так как пользователи могут перемещать изображения на странице, индексы могут возвращаться в измененном порядке.Because users can move the images on the page, the returned indexes might be out of order. Сортировка должна выполняться сверху вниз, а затем слева направо (если возникнут конфликты при вертикальной сортировке). Ordering should be in top to bottom y-order, and then left to right x-order if there are y-order conflicts.

Элементы iframeiframe elements

Страницы OneNote могут содержать внедренные видео, представленные элементами iframe.OneNote pages can contain embedded videos represented by iframe elements.

Примечание. Вы также можете вложить видеофайл с помощью элемента object.Note: You can also attach a video file using an object element.

Входные атрибутыInput attributes
Входной атрибутInput attributeОписаниеDescription
data-original-srcdata-original-srcОбязательный.Required. URL-адрес источника видео.The URL of the video source. См. список поддерживаемых источников видео.See the list of supported video sources.

Пример: data-original-src="https://www.youtube. com/watch?v=3Ztr44aKmQ8"Example: data-original-src="https://www.youtube.com/watch?v=3Ztr44aKmQ8"

width, heightwidth, heightШирина или высота элемента iframe в пикселях.The width or height of the iframe, in pixels. Пример: width=300Example: width=300
Выходные атрибутыOutput attributes
Выходной атрибутOutput attributeОписаниеDescription
data-original-srcdata-original-srcURL-адрес источника видео.The URL of the video source.
srcsrcСсылка на видео, внедренное в страницу OneNote.A link to the video that is embedded in the OneNote page.
width, heightwidth, heightШирина или высота элемента iframe в пикселях.The width or height of the iframe, in pixels.

Пример: width=300Example: width=300

Пример выходного HTML-кода для видеоOutput HTML example for videos

Выходные элементы iframe содержат конечные точки, ссылающиеся на исходную страницу и видео, как показано ниже. Output iframe elements contain endpoints that link to the source page and video, as shown.

<iframe 
    
    data-original-src="https://www.youtube.com/watch?v=3Ztr44aKmQ8" 
    src="https://www.youtube.com/embed/3Ztr44aKmQ8?feature=oembed&autoplay=true" />

Элементы objectobject elements

Страницы OneNote могут содержать вложения, представленные элементами object.OneNote pages can contain file attachments represented by object elements. Входной и выходной HTML-код для элемента object может содержать перечисленные ниже атрибуты.An object element can contain the following attributes in the input and output HTML.

Примечание. API OneNote также может отображать содержимое файлов в виде изображений на странице, если файл отправлен как изображение и использует атрибут data-render-src.Note: The OneNote APIs can also render file content as images in a page when the file is sent as an image and uses the data-render-src attribute. Пример: <img data-render-src="name:part-name" ... />Example: <img data-render-src="name:part-name" ... />

Входные атрибутыInput attributes
Входной атрибутInput attributeОписаниеDescription
datadataОбязательный.Required. Имя части, которая представляет файл в составном запросе.The name of the part that represents the file in the multipart request.
data-attachmentdata-attachmentОбязательный параметр. Имя файла.Required. The file name.
data-iddata-idСсылка на элемент.A reference for the element.

Используется для обновления содержимого страницы.Used to update page content.

stylestyleСвойства положения и размера объекта: position (только absolute), left, top и width.The position and size properties for the object: position (absolute only), left, top, and width.

Используется для создания объекта с абсолютным положением, только если объект является непосредственным дочерним элементом основного текста, для которого задан атрибут data-absolute-enabled="true".Used to create an absolute positioned object, only if the object is a direct child of the body when the body sets data-absolute-enabled="true".

Пример: <object ... />Example: <object ... />

typetypeОбязательный.Required.

Стандартный тип файла мультимедиа.The standard media file type. Для файлов известных типов на странице OneNote отображается значок, связанный с типом файла.Known file types display the icon associated with the file type on the OneNote page. Для файлов неизвестных типов отображается универсальный значок файла.Unknown file types display a generic file icon.

Выходные атрибутыOutput attributes
Пример выходных данных HTML для объектовOutput HTML example for objects

Выходные элементы object содержат конечные точки, ссылающиеся на файловые ресурсы со страницы, как показано ниже. Output object elements contain endpoints that link to the file resources in the page, as shown. Вы можете отправлять отдельные запросы GET к конечным точкам файловых ресурсов, чтобы получать их двоичное содержимое.You can make separate GET requests to file resource endpoints to retrieve their binary contents.

<object
    data="https://graph.microsoft.com/v1.0/me/onenote/resources/{file-id}/$value"
    data-attachment="fileName.pdf" 
    type="application/pdf" 
    [style="..."] />

Абзацы и заголовкиParagraphs and headings

Входной и выходной HTML-код для абзацев, заголовков и других текстовых контейнеров может содержать перечисленные ниже атрибуты.Paragraphs, headings, and other text containers can contain the following attributes in the input and output HTML.

Входные атрибутыInput attributes
Выходные атрибутыOutput attributes

В приведенных ниже примерах показан входной HTML-код, где используются разные способы определения стилей в текстовых контейнерах, и возвращаемый выходной HTML-код. The following examples show input HTML that uses different ways to define styles on text containers and the output HTML that’s returned.

Входной HTML-код со стилями, определенными с помощью встроенных стилей знаков, в начальном теге внутри элемента span.Input HTML with styles defined using inline character styles, in the start tag, and within a span element.
<h2>Heading <i>One</i> text</h2>
<p>Some text</p>
<p>Some <span >more</span> text</p>
Выходной HTML-код со стилем знака
<i> и параметрами шрифта в начальном теге <p>, возвращаемыми в виде встроенных стилей CSS в элементах span.Output HTML with the <i> character style and the font settings in the <p> start tag returned as inline CSS styles on span elements.
<h2>Heading <span>One</span> text</h2>
<p><span>Some text</span></p>
<p>Some <span>more</span> text</p>

СпискиLists

Для представления списков используются элементы ol или ul, которые содержат элементы списка, представленные элементами li. Lists are represented as ol or ul elements that contain list items represented as li elements.

Входной и выходной HTML-код списков и их элементов может содержать перечисленные ниже атрибуты.Lists and list items can contain the following attributes in the input and output HTML.

Входные атрибутыInput attributes
Выходные атрибутыOutput attributes

Стили списковList styles

API OneNote в Microsoft Graph поддерживают следующие стили списков:The OneNote APIs in Microsoft Graph support the following list styles:

Упорядоченный списокOrdered listНеупорядоченный списокUnordered list
nonenonenonenone
decimal (по умолчанию)decimal (default)
disc (по умолчанию)disc (default)
lower-alphalower-alpha
circlecircle
lower-romanlower-roman

squaresquare | | upper-alphaupper-alpha |   | | upper-romanupper-roman |   |

Вы можете применять глобальные стили для списка в элементе ol или ul входных данных HTML, но стили возвращаются в элементах li. You can apply global styles for a list on the ol or ul element in the input HTML, but styles are returned on the li elements.

Однородный стиль спискаHomogenous list style

В этом примере показан входной HTML-код, который задает тип стиля списка в элементе ol и стили CSS для отдельных элементов списка.This example shows input HTML that sets the list style type on the ol element and CSS styles on individual list items.

<ol>
    <li>Jacksonville</li>
    <li>Orlando</li>
    <li>Naples</li>
</ol>

Ниже приводятся выходные данные HTML. Обратите внимание, что стили возвращаются встроенными в отдельные элементы li или span.This is the output HTML. Notice that styles are returned inline on the individual li or span elements.

<ol>
    <li><span>Jacksonville</span></li>
    <li><span>Orlando</span></li>
    <li><span>Naples</span></li>
</ol>
Переменные стили списковVariable list styles

В этом примере показан входной HTML-код, который задает разные типы стилей списков в элементах li. This example shows input HTML that sets different list style types on the li elements.

<ul>
    <li>square style</li>
    <li>circle style</li>
    <li>disc style (default)</li>
</ul>

Ниже приводятся выходные данные HTML. Обратите внимание, что стили возвращаются встроенными в отдельные элементы li или span.This is the output HTML. Notice that styles are returned inline on the individual li or span elements.

<ul>
    <li><span>square style</span></li>
    <li><span>circle style</span></li>
    <li><span>disc style (default)</span></li>
</ul>

таблицы;Tables

Таблицы представляются как элементы table, которые могут содержать элементы tr и td. Поддерживаются вложенные таблицы. Tables are represented as table elements that can contain tr and td elements. Nested tables are supported.

Входной и выходной HTML-код для таблиц может содержать перечисленные ниже атрибуты.Tables can contain the following attributes in the input and output HTML. API OneNote не поддерживают атрибуты rowspan и colspan.The OneNote APIs do not support rowspan or colspan attributes.

Входные атрибутыInput attributes
Входной атрибутInput attributeОписаниеDescription
data-iddata-idСсылка на элемент.A reference for the element.

Используется для обновления содержимого страницы.Used to update page content.

stylestyleСвойства CSS style для элемента, а также:The CSS style properties of the element, and also:
width.- width. Поддерживается в элементах table и td как количество пикселей или процент от ширины страницы.Supported by table and td as pixels or percentage of page width.

Пример: width="100px" или width="60%"Example: width="100px" or width="60%"

границаborderСкладывает границы с таблицей указанной шириныAdds border to table with specified width
ширинаwidthШирина таблицыWidth of the table
bgcolorbgcolorЦвет фона таблицыThe background color of the table

Примечание: Использование свойства граница в стиле атрибута таблицы не поддерживается в ввода html.Note: The use of the border property in the style attribute of a table is not supported in input html.

Выходные атрибутыOutput attributes

В приведенных ниже примерах показан входной HTML-код, где используются разные способы определения стилей для таблиц, и возвращаемый выходной HTML-код. The following examples show input HTML that uses different ways to define styles on tables and the output HTML that’s returned.

Входной HTML-код с необязательными параметрами на разных уровнях.Input HTML with optional settings at different levels
<table border="1";; bgcolor = "green">
    <tr> 
        <td>Cell 1</td> 
        <td>Cell 2</td> 
        <td>Cell 3</td> 
    </tr> 
    <tr> 
        <td>Left</td> 
        <td>Middle</td> 
        <td>Right</td> 
    </tr> 
</table>
Выходной HTML-код со стилями CSS, которые возвращаются встроенными в элементы td.Output HTML with CSS styles returned inline on the td elements
<table>
    <tr>
        <td>Cell 1</td>
        <td>Cell 2</td>
        <td>Cell 3</td>
    </tr>
    <tr>
        <td>Left</td>
        <td>Middle</td>
        <td>Right</td>
    </tr>
</table>

СтилиStyles

API OneNote в Microsoft Graph поддерживают перечисленные ниже встроенные свойства CSS style для элементов основного текста страницы, например body, div, p, li и span. OneNote APIs in Microsoft Graph support the following inline CSS style properties for elements in the page body, such as body, div, p, li, and span.

СвойствоPropertyПримерExample
background-colorbackground-colorstyle="background-color:#66cc66" (по умолчанию задан белый цвет)style="background-color:#66cc66" (defaults to white)

Поддерживаются как шестнадцатеричный формат, так и именованные цвета.Both hexadecimal format and named colors are supported.

colorcolorstyle="color:#ffffff" (по умолчанию задан черный цвет)style="color:#ffffff" (defaults to black)
font-familyfont-familystyle="font-family:Courier" (по умолчанию задан шрифт Calibri)style="font-family:Courier" (defaults to Calibri)
font-sizefont-sizestyle="font-size:10pt" (по умолчанию задан размер 11 точек)style="font-size:10pt" (defaults to 11pt)

API принимают размер шрифта в единицах pt или px, но единицы px преобразуются в pt. The APIs accept font size in pt or px, but converts px to pt. Десятичные значения округляются до ближайшего значения n,0 или n,5 точек.Decimal values are rounded to the nearest n.0pt or n.5pt.

font-stylefont-stylestyle="font-style:italic" (обычный или только курсив)style="font-style:italic" (normal or italic only)
font-weightfont-weightstyle="font-weight:bold" (обычный или только полужирный)style="font-weight:bold" (normal or bold only)
strike-throughstrike-throughstyle="text-decoration:line-through"
text-aligntext-alignstyle="text-align:center" (только для блочных элементов)style="text-align:center" (for block elements only)
text-decorationtext-decorationstyle="text-decoration:underline" (без оформления или только подчеркивание)style="text-decoration:underline" (none or underline only)

Кроме того, поддерживаются следующие встроенные стили знаков:The following inline character styles are also supported:

Пример входного и выходного HTML-кодаInput and output HTML example

На приведенном ниже рисунке показана простая страница, созданная с помощью Microsoft Graph. The following image shows a simple page that was created with Microsoft Graph.

Ниже показан входной HTML-код, отправляемый в тексте сообщения для создания страницы.This is the input HTML sent in the message body to create the page.

<html lang="en-US">
    <head>
        <title>Sample Study Notes</title>
        <meta name="created" content="2015-01-01T01:01"/>
    </head>
    <body>
        <h2>Aurora Borealis</h2>
        <p>Dancing lights in the sky. Also called <i>Northern Lights</i>. Caused by solar radiation.</p>
        <br />
        <p><b>Intersting facts</b></p>
        <table>
            <tr>
                <td>Neil Armstrong</td>
                <td>Commander</td>
            </tr>
            <tr>
                <td>Buzz Aldrin</td>
                <td>LM Pilot</td>
            </tr>
            <tr>
                <td>Michael Collins</td>
                <td>Command Module Pilot</td>
            </tr>
        </table>
        <img alt="Apollo 11 commemorative stamp. " src="https://upload.wikimedia.org/wikipedia/commons/a/a4/First_Man_on_Moon_1969_Issue-10c.jpg" />
        <p>References:</p>
        <p><a href="https://en.wikipedia.org/wiki/Apollo_11">https://en.wikipedia.org/wiki/Apollo_11</a></p>
        <p><a href="https://www.nasa.gov/mission_pages/apollo/missions/apollo11.html">https://www.nasa.gov/mission_pages/apollo/missions/apollo11.html</a></p>
    </body>
</html>

Ниже показан выходной HTML-код, который Microsoft Graph возвращает при получении содержимого страницы.This is the output HTML that Microsoft Graph returns when you get page content.

Примечание. При создании страницы или получении метаданных страницы API возвращает URL-адрес конечной точки content для страницы в свойстве contentUrl.Note: When you create a page or get page metadata, the API returns the content endpoint URL of the page in the contentUrl property.

<html htmlns="https://www.w3.org/1999/xhtml" lang="en-US">
    <head>
        <title>Sample Study Notes</title>
    </head>
    <body data-absolute-enabled="true">
        <div data-id="_default">
            <h2>American History 101: Moon Landing</h2>
            <p>First moon landing - July 20, 1969 with Apollo 11 (Eagle)</p>
            <br />
            <p><span>Apollo 11 Astronauts</span></p>
            <table>
                <tr>
                    <td>Neil Armstrong</td>
                    <td>Commander</td>
                </tr>
                <tr>
                    <td>Buzz Aldrin</td>
                    <td>LM Pilot</td>
                </tr>
                <tr>
                    <td>Michael Collins</td>
                    <td>Command Module Pilot</td>
                </tr>
            </table>
            <br />
            <img alt="Apollo 11 commemorative stamp. " src="https://graph.microsoft.com/v1.0/me/onenote/resources/0-f717b5fa5eaa454da7ecdf72a8c137fe!1-73DBAF9B7E5C4B4C!10456/$value"
                 data-src-type="image/jpeg" data-fullres-src="https://graph.microsoft.com/v1.0/me/onenote/resources/0-f717b5fa5eaa454da7ecdf72a8c137fe!1-73DBAF9B7E5C4B4C!10456/$value" data-fullres-src-type="image/jpeg" />
            <p>References:</p>
            <p><a href="https://en.wikipedia.org/wiki/Apollo_11">https://en.wikipedia.org/wiki/Apollo_11</a></p>
            <p><a href="https://www.nasa.gov/mission_pages/apollo/missions/apollo11.html">https://www.nasa.gov/mission_pages/apollo/missions/apollo11.html</a></p>
        </div>
    </body>
</html>

См. такжеSee also

HTML Базовый


В этой главе мы покажем несколько основных примеров HTML.

Не беспокойтесь, если мы будем использовать теги, о которых вы еще не знали.


Документы HTML

Все документы HTML должны начинаться с объявления типа документа: .

Сам документ HTML начинается с и заканчивается .

Видимая часть HTML-документа находится между и .

Пример


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


Мой первый абзац.


Попробуй сам »

Декларация

Объявление представляет тип документа и помогает браузерам правильно отображать веб-страницы.

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

В объявлении регистр не учитывается.

Объявление для HTML5:


HTML-заголовки

Заголовки

HTML определяются тегами

.

определяет наиболее важный заголовок.
определяет наименее важные заголовок:

Пример

Это заголовок 1


Это заголовок 2


Это заголовок 3

Попробуй сам »

HTML абзацы

абзацев HTML определяются тегом

:


HTML-ссылки

HTML-ссылки определяются тегом :

Назначение ссылки указано в атрибуте href .

Атрибуты используются для предоставления дополнительной информации об элементах HTML.

Вы узнаете больше об атрибутах в следующей главе.


Изображения HTML

изображений HTML определяются тегом .

Исходный файл ( src ), альтернативный текст ( alt ), ширина и высота предоставляются как атрибуты:

Пример

Вы когда-нибудь видели веб-страницу и задавались вопросом: «Эй! Как они это сделали?»

Просмотреть исходный код HTML:

Щелкните правой кнопкой мыши страницу HTML и выберите «Просмотр исходного кода страницы» (в Chrome) или «Просмотр исходного кода» (в Edge) или аналогичное в других браузерах. Это откроет окно содержащий исходный HTML-код страницы.

Проверить элемент HTML:

Щелкните правой кнопкой мыши элемент (или пустую область) и выберите «Проверить» или «Осмотрите элемент», чтобы увидеть, из каких элементов состоят (вы увидите оба HTML и CSS).Вы также можете редактировать HTML или CSS на лету в Откроется панель «Элементы» или «Стили».



Введение в HTML


HTML — это стандартный язык разметки для создания веб-страниц.


Что такое HTML?

  • HTML означает язык гипертекстовой разметки
  • HTML — стандартный язык разметки для создания веб-страниц
  • HTML описывает структуру веб-страницы
  • HTML состоит из серии элементов
  • Элементы HTML сообщают браузеру, как отображать контент
  • HTML-элементы помечают фрагменты контента, такие как «это заголовок», «это это абзац «,» это ссылка «и т. д.

Простой документ HTML

Пример




Заголовок страницы

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


Мой первый абзац.


Попробуй сам »

Объяснение примера