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

Рассмотрим три основных типа моделей данных: иерархическую, сетевую, реляционнную и объектно-ориентированную.

Иерархическая модель данных. Иерархическая структура представляет совокупность элементов, связанных между собою по определенным правилам. Объекты, связанные иерархическими отношениями, образовывают ориентированный граф (перевернутое дерево). К основным понятиям иерархической структуры относятся: уровень, элемент (узел), связь. Иерархическую модель организовывает данные в виде древовидной структуры. Узел - это совокупность атрибутов данных, которые описывают некоторый объект. На схеме иерархического дерева узлы имеют вид вершин графа. Каждый узел на более низком уровне связан только с одним узлом, который находится на более высоком уровне. Иерархическое дерево имеет только одну вершину (корень дерева), которая не подчинена никакой другой вершине. Зависимые (подчиненные) узлы находятся на втором, третьем и других уровнях. Количество деревьев в базе данных определяется числом корневых записей.

Сетевая модель данных.

Сетевая модель означает представление данных в виде произвольного графа. Достоинством сетевой и иерархической моделей данных является возможность их эффективной реализации по показателям затрат памяти и оперативности. Недостатком сетевой модели данных является высокая сложность и жесткость схемы БД, построенной на ее основе.

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

На языке математики отношение определяется таким образом. Пусть задано n множеств D1,D2, ...,Dn. Тогда R есть отношение над этими множествами, если R есть множеством упорядоченных наборов вида , где d1 - элемент с D1 , d2 - элемент с D2 , ... , dn - элемент с Dn. При этом наборы вида называются кортежами, а множества D1,D2, ...Dn - доменами. Каждый кортеж состоит из элементов, которые выбираются из своих доменов. Эти элементы называются атрибутами, а их значения - значениями атрибутов.

Итак, реляционнная модель ориентирована на организацию данных в виде двумерных таблиц, любая из которых имеет следующие свойства:

Каждый элемент таблицы - это один элемент данных;

Все столбцы в таблицы - однородные, т.е все элементы в столбце имеют одинаковый тип (символьный, числовой и т.п.);

Каждый столбец носит уникальное имя;

Одинаковые строки в таблицы отсутствуют.

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

Следующие термины являются эквивалентными:

отношение , таблица, файл (для локальных БД );

кортеж, строка , запись;

атрибут, столбик, поле.

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

Реляционная БД есть совокупностью отношений, которые содержат всю необходимую информацию и объединенную разными связями.

БД считается нормализованной , если выполняются следующие условия:

Каждая таблица имеет главный ключ;

Все поля каждой таблицы зависят только от главного ключа;

В таблицах отсутствуют группы повторных значений.

Для успешной работы с многотабличными БД, как правило, надо установить между ними связи. При этом пользуются терминами “базовая таблица» (главная) и “подчиненная таблица». Связь между таблицами получается благодаря двум полям, одно из которых находится в базовой таблице, а второе - в подчиненной. Эти поля могут иметь значение, которое повторяются. Если значение в связанном поле записи базовой таблицы и в поле подчиненной совпадают, то эти записи называются связанными.

Существуют четыре типа отношений между таблицами: один к одному , один ко многим, много к одному, много ко многим .

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

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

Главная таблица – это таблица, которая содержит первичный ключ и составляет часть один в отношении один ко многим .

Внешний ключ – это поле, содержащее такой же тип информации в таблице со стороны много .

Практическая работа

HTML-списки используются для группировки связанных между собой фрагментов информации. Существует три вида списков:

маркированный список

    — каждый элемент списка
  • отмечается маркером,
    нумерованный список
      — каждый элемент списка
    1. отмечается цифрой,
      список определений — — состоит из пар термин
      определение.

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

      Создание HTML-списков

      1. Маркированный список

      Маркированный список представляет собой неупорядоченный список (от англ. Unordered List) . Создаётся с помощью парного тега

      . В качестве маркера элемента списка выступает метка, например, закрашенный кружок.

      Браузеры по умолчанию добавляют следующее форматирование блоку списка:

      Каждый элемент списка создаётся с помощью парного тега

    2. (от англ. List Item) .
      доступны .
    • Microsoft
    • Google
    • Apple
    Рис. 1. Маркированный список

    2. Нумерованный список

    Нумерованный список создаётся с помощью парного тега . Каждый пункт списка также создаётся с помощью элемента

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

    Блок списка также имеет стили браузера по умолчанию:

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

    Для тега

      доступны следующие атрибуты:

      Таблица 1. Атрибуты тега
      Атрибут Описание, принимаемое значение
      reversed Атрибут reversed задает отображение списка в обратном порядке (например, 9, 8, 7…).
      start Атрибут start задает начальное значение, от которого пойдет отсчет нумерации, например, конструкция
        первому пункту присвоит порядковый номер «10». Также можно одновременно задавать тип нумерации, например,
          .
      type Атрибут type задает вид маркера для использования в списке (в виде букв или цифр). Принимаемые значения:
      1 — значение по умолчанию, десятичная нумерация.
      A — нумерация списка в алфавитном порядке, заглавные буквы (A, B, C, D).
      a — нумерация списка в алфавитном порядке, строчные буквы (a, b, c, d).
      I — нумерация римскими заглавными цифрами (I, II, III, IV).
      i — нумерация римскими строчными цифрами (i, ii, iii, iv).
      1. Microsoft
      2. Google
      3. Apple
      Рис. 2. Нумерованный список

      3. Список определений

      Списки определений создаются с помощью тега

      . Для добавления термина применяется тег
      , а для вставки определения — тег
      .

      Блок списка определений имеет следующие стили браузера по умолчанию:

      Для тегов

      ,
      и
      доступны .

      Режиссер:
      Петр Точилин
      В ролях:
      Андрей Гайдулян
      Алексей Гаврилов
      Виталий Гогунский
      Мария Кожевникова
      Рис. 3. Список определений

      4. Вложенный список

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

      • Пункт 1.
      • Пункт 2.
        • Подпункт 2.1.
        • Подпункт 2.2.
          • Подпункт 2.2.1.
          • Подпункт 2.2.2.
        • Подпункт 2.3.
      • Пункт 3.

      Рис. 4. Вложенный список

      5. Многоуровневый нумерованный список

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

      1. пункт
      2. пункт
        1. пункт
        2. пункт
        3. пункт
          1. пункт
          2. пункт
          3. пункт
        4. пункт
      3. пункт
      4. пункт

      Такая разметка по умолчанию создаст для каждого вложенного списка новую нумерацию, начинающуюся с единицы. Чтобы сделать вложенную нумерацию, нужно использовать следующие свойства:
      counter-reset сбрасывает один или несколько счётчиков, задавая значение для сброса;
      counter-increment задаёт значение приращения счётчика, т.е. с каким шагом будет нумероваться каждый последующий пункт;
      content — генерируемое содержимое, в данном случае отвечает за вывод номера перед каждым пунктом списка.

      Ol { /* убираем стандартную нумерацию */ list-style: none; /* Идентифицируем счетчик и даем ему имя li. Значение счетчика не указано - по умолчанию оно равно 0 */ counter-reset: li; } li:before { /* Определяем элемент, который будет нумероваться — li. Псевдоэлемент before указывает, что содержимое, вставляемое при помощи свойства content, будет располагаться перед пунктами списка. Здесь же устанавливается значение приращения счетчика (по умолчанию равно 1). */ counter-increment: li; /* С помощью свойства content выводится номер пункта списка. counters() означает, что генерируемый текст представляет собой значения всех счетчиков с таким именем. Точка в кавычках добавляет разделяющую точку между цифрами, а точка с пробелом добавляется перед содержимым каждого пункта списка */ content: counters(li,".") ". "; }
      Рис. 5. Многоуровневый нумерованный список

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

  1. Молоко.
  2. Хлеб.
  3. Колбаса.
  4. Яйцо.

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

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

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

Виды списков в HTML

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

запрещенным.

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

Для того, чтобы создать элемент списка в HTML используется тэг

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

    Контейнер любого списка это всегда блочный HTML элемент и парный HTML тэг с обязательным закрывающим тэгом. Давайте поговорим более подробно о каждом из контейнеров.

    1. Нумерованный HTML список формируется при помощи HTML тэга
        . Каждый пункт такого списка будет пронумерован, хотя вместо арабских цифр могут быть использованы римские цифры или буквы алфавита. Сокращение ol расшифровывается как ordered list.
      1. Маркированный HTML список . Каждый элемент такого списка имеет маркер с левой стороны. Маркированный HTML список формируется при помощи тэга
          , что можно расшифровать, как unordered list.
        • Список определений состоит из трех HTML элементов и формируется при помощи трех тэгов. За формирование списка определений в HTML отвечает тэг
          . Тэг парный с обязательным закрывающим тэгом. HTML элемент DL блочный. Сокращение dl расшифровывается, как definition lists. Особенность списка определений заключается в том, что один его пункт состоит из двух HTML элементов: первый элемент – это термин, который обозначается тэгом
          , он является парным тэгом с опциональным закрывающим. HTML элемент DT блочный. Второй элемент – определение, которое обозначается тэгом
          , это парный тэг с опциональным закрывающим тэгом, а HTML элемент DT блочный.
        • Список директорий в HTML считается запрещенным и не рекомендован к использованию. Список директорий формируется при помощи тэга , который является парным HTML тэгом, а элемент HTML страницы DIR блочный.
        • Список меню в HTML . Формируется при помощи тэга , тэг является парным тэгом, а элемент MENU блочный. В стандарте HTML01 тэг считается запрещенным, но стандарт HTML 5 рекомендует использовать тэг для создания меню на сайте, чтобы поисковые системы и некоторые браузеры понимали, что это не просто список со ссылками, а именно меню сайта.

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

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

      Маркированный HTML список. HTML атрибуты маркированных списков

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

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

          Мы можем менять вид маркера при помощи специального HTML атрибута type. Маркер списка может быть отображен тремя разными способами: в виде диска, в виде окружности и в виде квадрата. Соответственно:

          1. Чтобы сделать маркер HTML списка в виде диска , нам нужно указать: type=”disc”.
          2. Если мы хотим, чтобы маркер списка отображался в виде квадрата, то нужно написать следующее: type=”square”.
          3. Если же вы хотите, чтобы маркер HTML списка был в виде окружности, то: type=”circle”.

          Значение по умолчанию для любого маркированного HTML списка в любом браузере: type=”disc”. CSS так же позволяет изменять вид маркера при помощи свойства list-style-type.

          Давайте попрактикуемся в создании маркированных HTML списков , откройте любой редактор (можно даже Блокнот, но я бы рекомендовал вам попробовать ) и напишите следующий код:

          Примеры маркированного HTML списка

          • Первый элемент списка
          • Второй элемент списка
          • Третий элемент списка
          • Четвертый элемент списка
          • Пятый элемент списка

          Делаем маркер HTML списка в виде окржности

          • Первый элемент списка
          • Второй элемент списка
          • Третий элемент списка
          • Четвертый элемент списка
          • Пятый элемент списка

          Делаем маркер HTML списка квадратным

          • Первый элемент списка
          • Второй элемент списка
          • Третий элемент списка
          • Четвертый элемент списка
          • Пятый элемент списка

          < ! DOCTYPE html >

          < html lang = "ru-RU" >

          < head >

          < meta charset = "UTF-8" >

          < title >< / title >

          < link rel = "stylesheet" type = "text/css" href = "style.css" / >

          < / head >

          < body >

          < h1 > ПримерымаркированногоHTML списка< / h1 >

          < ul >

          < li > Первыйэлементсписка

          < li > Второйэлементсписка

          < li > Третийэлементсписка

          < li > Четвертыйэлементсписка

          < li > Пятыйэлементсписка

          < / ul >

          < h2 > ДелаеммаркерHTML спискаввидеокржности< / h2 >

          < ul >

          < li type = "circle" > Первыйэлементсписка< / li >

          < li type = "circle" > Второйэлементсписка< / li >

          < li type = "circle" > Третийэлементсписка< / li >

          < li type = "circle" > Четвертыйэлементсписка< / li >

          < li type = "circle" > Пятыйэлементсписка< / li >

          < / ul >

          < h2 > ДелаеммаркерHTML спискаквадратным< / h2 >

          < ul >

          < li type = "square" > Первыйэлементсписка< / li >

          < li type = "square" > Второйэлементсписка< / li >

          < li type = "square" > Третийэлементсписка< / li >

          < li type = "square" > Четвертыйэлементсписка< / li >

          < li type = "square" > Пятыйэлементсписка< / li >

          < / ul >

          < / body >

          < / html >

          Не забывайте использовать . Сохраните получившийся документ файл, как index.html и откройте его в браузере, вы увидите примерно следующее:

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

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

          Нумерованный HTML список. HTML атрибуты нумерованных списков

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

            . В контейнере
              не могут находится никакие тэги, кроме тэга
            1. .

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

              1. Атрибут type. Атрибут type изменяет тип нумерации упорядоченного списка . Нам доступны три значения для данного атрибута: type=”A” делает нумерацию HTML списка в виде заглавных латинских букв; type=”a” в этом случае нумерация списка будет производиться при помощи строчных латинских букв; type=”I” позволяет изменить нумерацию на заглавные римские цифры; type=”i” в этом случае нуммерация будет произведена строчными римскими цифрами и type=”1” – это значение по умолчанию для всех нумерованных HTML списков в любом браузере. В CSS можно изменять вид нумерованного списка при помощи свойства list-style-type.
              2. Атрибут reversed. Данный атрибут меняет порядок нумерации упорядоченного HTML списка. Атрибут не имеет значений. Аналогов в CSS у данного атрибута нет.
              3. Атрибут start. Данный атрибут не имеет аналогов в CSS и используется для изменение стартового номера в нумерованном HTML списке . В качестве значения данный атрибут принимает целые числа для любого типа нумерованного HTML списка.

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

              Примеры нумерованного HTML списка

              Изменяем тип нумерованного HTML списка

              1. Первый элемент списка
              2. Второй элемент списка
              3. Третий элемент списка

              Используем для нумерации списка большие римские цифрры

              1. Первый элемент списка
              2. Второй элемент списка
              3. Третий элемент списка

              Используем для нумерации заглавные латинские буквы

              1. Первый элемент списка
              2. Второй элемент списка
              3. Третий элемент списка

              Используем для нумерации строчные латинские буквы

              1. Первый элемент списка
              2. Второй элемент списка
              3. Третий элемент списка

              Используем для нумерации строчные римские цифры

              1. Первый элемент списка
              2. Второй элемент списка
              3. Третий элемент списка

              Изменяем порядок нумерации HTML списка

              1. Первый элемент списка
              2. Второй элемент списка
              3. Третий элемент списка
              4. Четвертый элемент списка
              5. Пятый элемент списка
              6. Шестой элемент списка

              Изменяем точку отсчета в упорядоченном списке

              1. Первый элемент списка
              2. Второй элемент списка
              3. Третий элемент списка
              4. Четвертый элемент списка
              5. Пятый элемент списка
              6. Шестой элемент списка

              < ! DOCTYPE html >

              < html lang = "ru-RU" >

              < head >

              < meta charset = "UTF-8" >

              < title >< / title >

              < link rel = "stylesheet" type = "text/css" href = "style.css" / >

              < / head >

              < body >

              < h1 > ПримерынумерованногоHTML списка< / h1 >

              < h2 > ИзменяемтипнумерованногоHTML списка< / h2 >

              < ol >

              < li > Первыйэлементсписка

              < li > Второйэлементсписка

              < li > Третийэлементсписка

              < / ol >

              < h3 > Используемдлянумерацииспискабольшиеримскиецифрры< / h3 >

              < ol >

              < li type = "I" > Первыйэлементсписка< / li >

              < li type = "I" > Второйэлементсписка< / li >

              < li type = "I" > Третийэлементсписка< / li >

              < / ol >

              < h3 > Используемдлянумерациизаглавныелатинскиебуквы< / h3 >

              < ol >

              < li type = "A" > Первыйэлементсписка< / li >

              < li type = "A" > Второйэлементсписка< / li >

              < li type = "A" > Третийэлементсписка< / li >

              < / ol >

              < h3 > Используемдлянумерациистрочныелатинскиебуквы< / h3 >

              < ol >

              < li type = "a" > Первыйэлементсписка< / li >

              < li type = "a" > Второйэлементсписка< / li >

              < li type = "a" > Третийэлементсписка< / li >

              < / ol >

              < h3 > Используемдлянумерациистрочныеримскиецифры< / h3 >

              < ol >

              < li type = "i" > Первыйэлементсписка< / li >

              < li type = "i" > Второйэлементсписка< / li >

              < li type = "i" > Третийэлементсписка< / li >

              < / ol >

              < h2 > ИзменяемпорядокнумерацииHTML списка< / h2 >

              < ol reversed type = "A" >

              < li > Первыйэлементсписка

              < li > Второйэлементсписка

              < li > Третийэлементсписка

              < li > Четвертыйэлементсписка

              < li > Пятыйэлементсписка

              < li > Шестойэлементсписка

              < / ol >

              < h2 > Изменяемточкуотсчетавупорядоченномсписке< / h2 >

              < ol reversed type = "I" start = "40" >

              < li > Первыйэлементсписка

              < li > Второйэлементсписка

              < li > Третийэлементсписка

              < li > Четвертыйэлементсписка

              < li > Пятыйэлементсписка

              < li > Шестойэлементсписка

              < / ol >

              < / body >

              < / html >

              Пример довольно объемный, но он демонстрирует все доступные возможности по работе с нумерованными HTML списками . Давайте разбираться по порядку. Первая часть примера, обозначенная

              с текстом: «Изменяем тип нумерованного HTML списка», демонстрирует нам, как атрибут type меняет тип нумерации упорядоченного/нумерованного HTML списка:

              Изменяем тип нумерации в упорядоченном списке

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

              , но уже с текстом: «». Показывает то, как мы можем изменить порядок нумерации HTML списка при помощи атрибуты reversed :

              И третья часть примера хорошо демонстрирует, :

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

              Список определений в HTML. HTML атрибуты списков определений

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

              Список определений создается при помощи специального HTML тэга

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

              1. Термин, который указывается в контейнере
                .
              2. Определение термина, которое указывается в контейнере
                .

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

              Примеры списков определний в HTML

              Термин
              Определние термина
              Xenu Link
              Удобная и бесплатная программа для поиска битых ссылок на сайте и его внтреннего аудита. Благодаря тому, что Xenu проста в использование, бесплатна и многофункциональна, данное приложение звоевало популярность среди многих веб-мастеров.
              SQLite3
              Встраиваемая система управления базами данных, основанная на стандарте SQL-92. Особенностью SQLite является то, что права доступа к данным определяются правами операционной системы или приложением, в которое SQLite3 встроена.
              HTTP
              Протокол, по которому происходит взаимодействие в сети Интернет. Протокол HTTP был разработан в стенах ЦЕРНа, здесь же был разработан первый стандарт HTML.

              < ! DOCTYPE html >

              < html lang = "ru-RU" >

              < head >

              < meta charset = "UTF-8" >

              < title >< / title >

              < link rel = "stylesheet" type = "text/css" href = "style.css" / >

              < / head >

              < body >

              < h1 > ПримерысписковопределнийвHTML < / h1 >

              < dl >

              < dt > Термин< / dt >

              < dt > Определниетермина< / dt >

              < dt > Xenu Link < / dt >

              < dt > Удобнаяибесплатнаяпрограммадляпоискабитыхссылокнасайтеиеговнтреннегоаудита.

              Благодарятому, чтоXenu простависпользование, бесплатнаимногофункциональна, данное

              приложениезвоевалопопулярностьсредимногихвеб- мастеров. < / dt >

              < dt > SQLite3 < / dt >

              < dt > Встраиваемаясистемауправлениябазамиданных, основаннаянастандартеSQL - 92.

              ОсобенностьюSQLite являетсято, чтоправадоступакданнымопределяютсяправами

              операционнойсистемыилиприложением, вкотороеSQLite3 встроена. < / dt >

              < dt > HTTP < / dt >

              < dt > Протокол, покоторомупроисходитвзаимодействиевсетиИнтернет. ПротоколHTTP былразработанв

              < / dl >

              < / body >

              < / html >

              Давайте посмотрим, как браузер отобразит список определений на HTML странице :

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

              Список директорий в HTML

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

              . Внутри данного тэга могут находиться только элементы списка директорий, которые создаются при помощи тэга
            2. .

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

              Многоуровневый HTML список. Вложенный список в HTML

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

            3. ), но внутри тэга
            4. могут находиться другие тэги: в том числе и тэги
                и
                  . За счет этого правила мы можем создавать многоуровневые списки в HTML .

                  Давайте попробуем создать несколько примеров многоуровневых HTML списков . Откройте редактор (например, основной его минус в том, что он платный):

                  PHP

                  Примеры многоуровневых HTML списков

                  Простой пример многоуровневого списка

                  • Первый элемент списка
                  • Второй элемент списка
                    • Первый элемент вложенного списка
                    • Второй элемент вложенного списка
                    • Третий элемент вложенного списка
                  • Третий элемент списка
                  • Четвертый элемент списка
                  • Пятый элемент списка

                  < ! DOCTYPE html >

                  < html lang = "ru-RU" >

                  < head >

                  < meta charset = "UTF-8" >

                  < title > ПримерымногоуровневыхHTML списков< / title >

                  < link rel = "stylesheet" type = "text/css" href = "style.css" / >

                  < / head >

                  < body >

                  < h1 > ПримерымногоуровневыхHTML списков< / h1 >

                  < h2 > Простойпримермногоуровневогосписка< / h2 >

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

                    , а каждый пункт списка начинается с тега
                  • , как показано ниже.

                    • Первый пункт
                    • Второй пункт
                    • Третий пункт

                    В списке непременно должен присутствовать закрывающий тег

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

                  В примере 11.1 приведен код HTML для добавления маркированного списка на веб-странице.

                  Пример 11.1. Создание маркированного списка

                  Маркированный список


                  • Чебурашка
                  • Крокодил Гена
                  • Шапокляк
                  • Крыса Лариса

                  Результат данного примера показан на рис. 11.1.

                  Рис. 11.1. Вид маркированного списка

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

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

                    . Допустимые значения приведены в табл. 11.1

                    Табл. 11.1. Стили маркеров списка
                    Тип списка Код HTML Пример
                    Список с маркерами в виде круга

                    • Первый
                    • Второй
                    • Третий
                    Список с маркерами в виде окружности

                    • Первый
                    • Второй
                    • Третий
                    Список с квадратными маркерами

                    • Первый
                    • Второй
                    • Третий

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

                    Создание списка с квадратными маркерами показано в примере 11.2.

                    Пример 11.2. Вид маркеров

                    Маркированный список

                    Изменение убеждений

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

                    Результат данного примера показан на рис. 11.2.

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

                    С элементом

                      связаны следующие особенности:

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

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

                        Рис. 1. Вид маркированного списка

                        Вид маркера

                        Маркеры могут принимать один из трёх видов: закрашенный кружок (по умолчанию), незакрашенный кружок и квадрат. Для выбора типа маркера используется свойство list-style-type или универсальное list-style (пример 1). Применяются следующие значения:

                        • disc - маркеры в виде закрашенного кружка;
                        • circle - маркеры в виде незакрашенного кружка;
                        • square - квадратные маркеры.

                        Пример 1. Изменение вида маркера

                        Списки

                        • Сепульки
                        • Сепулькарии
                        • Сепуление

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

                      • не получится, поэтому придётся действовать в обход. Для этого прячем маркеры списка с помощью свойства list-style со значением none и в тексте перед содержимым
                      • добавляем свой собственный символ с помощью псевдоэлемента ::before . В примере 2 в качестве такого маркера выступает треугольник.

                        Пример 2. Использование::before

                        Списки

                        • Сепульки
                        • Сепулькарии
                        • Сепуление

                        Результат данного примера показан на рис. 2. Поскольку использование свойства list-style со значением none не убирает маркеры совсем, а только скрывает их от просмотра, то список получается смещённым вправо. Чтобы избавиться от этой особенности, в примере добавляется свойство text-indent с отрицательным значением. Его задача - переместить текст левее на один символ.

                        Рис. 2. Произвольные маркеры в списке

                        Символ не обязательно должен быть в шестнадцатеричном формате, его можно вставить и непосредственно в текст. Главное, сохранить документ в кодировке UTF-8 и чтобы редактор её поддерживал. Сами символы и их коды можно взять, например, из LibreOffice Writer (рис. 3).

                        Рис. 3. Выбор символа в LibreOffice

                        Список с рисованными маркерами

                        Стили позволяют установить в качестве маркера любое подходящее изображение через свойство list-style-image . В качестве значения используется относительный или абсолютный путь к графическому файлу, как показано в примере 3.

                        Пример 3. Использование изображения в качестве маркера

                        Списки

                        • Сепульки
                        • Сепулькарии
                        • Сепуление

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

                        Рис. 4. Рисунок в качестве маркера

                        Применение list-style-image обладает некоторыми недостатками:

                        • рисунок нельзя сдвинуть вверх или вниз;
                        • в разных браузерах положение рисунка относительно текста может отличаться.

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

                      • мы убираем исходные маркеры и устанавливаем фоновую картинку без повторения. А чтобы текст не выводился поверх рисунка, смещаем его вправо через padding-left (пример 4).

                        Пример 4. Использование background

                        Ul { margin-left: -1em; } li { list-style: none; background: url(images/bullet.png) no-repeat 0 2px; padding-left: 20px; }

                        Положение текста и маркера

                        Существует два способа размещения маркера относительно текста: маркер выносится за границу элементов списка или обтекается текстом (рис. 5).



                        inside outside

                        Рис. 5. Размещение маркеров относительно текста

                        Чтобы управлять положением маркеров, применяется свойство list-style-position . Оно имеет два значения: outside - маркеры размещаются за пределами текстового блока (это значение по умолчанию) и inside - маркеры являются частью текстового блока и отображаются в элементе списка (пример 5).

                        Пример 5. Изменение положения маркеров

                        Списки

                        Результат данного примера показан на рис. 6.