Блочная верстка в 3 колонки. Многоколоночность на CSS подробнее. Удаление комментариев Google Plus

Прочие модели 25.03.2019
Прочие модели

В языке HTML предусмотрен специальный набор тегов для представления информации в виде списков. Списки являются одним из наиболее часто употребляемых форм представления данных как в электронных документах, так и в печатных. Со списками мы встречаемся практически ежедневно, - это может быть список необходимых покупок в магазине, учеников в классе или просто дел, которые необходимо выполнить. Возможность организации списковых структур имеется во многих текстовых редакторах, в частности, мощный текстовый процессор Microsoft Word обладает удобными средствами форматирования списков различного вида (возможности создания HTML-списков при помощи Microsoft Word обсуждаются в главе 8). Приведем ряд случаев, для которых использование списков довольно удобно:

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

Заметим, что приведенные выше пункты как раз и организованы в виде списковой структуры.

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

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

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

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

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

        , с помощью которого и организуются списки такого типа в HTML-документах (UL - Unordered List, неупорядоченный список).

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

        Тэги

          и <LI >

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


          .

          Каждый элемент списка должен начинаться тэгом

        • (LI - List Item, элемент списка). Тег
        • не нуждается в соответствующем закрывающем тэге, хотя его наличие в принципе не возбраняется. Браузеры обычно при отображении документа начинают каждый новый элемент списка с новой строчки.

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

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

            Знаки зодиака:

            • Овен

            • Телец

            • Близнецы

            • Рак

            • Лев

            • Дева

            • Весы

            • Скорпион

            • Стрелец

            • К озерог

            • Водолей

            • Рыбы

          Рис. 2.1. Отображение браузером маркированного списка

          Заметим, что кроме элементов списка, отмечаемых тэгом

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

          Примечание

          В некоторых учебниках по языку HTML встречается указание, что для задания заголовка списка следует применять тэг-контейнер (LH - List Header, заголовок списка). В настоящее время этот тег не распознается ни одним из распространенных браузеров и не входит в спецификацию HTML. Таким образом, его применение становится бессмысленным, хотя и не приведет к каким-либо ошибкам.

          В тэге

            могут быть указаны два параметра: COMPACT и TYPE.

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

            Примечание

            В настоящее время наличие параметра COMPACT в тэге

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

              Параметр TYPE может принимать следующие значения: disc, circle и square. Этот параметр используется для принудительного задания вида маркеров списка. Конкретный вид маркера будет зависеть от используемого браузера. Типичными вариантами отображения являются следующие:

              TYPE = disc - маркеры отображаются закрашенными кружками; TYPE = circle - маркеры отображаются не закрашенными кружками; TYPE = square - маркеры отображаются закрашенными квадратиками. Пример записи:

                .

                Значением, используемым по умолчанию, является TYPE = disc. Для вложенных маркированных списков на первом уровне по умолчанию используется значение disc, на втором - circle, на третьем и далее - square. Именно так делается в последних версиях браузеров Netscape и Internet Explorer. Заметим, что иные браузеры могут иначе отображать маркеры. Например, в спецификации HTML 4.0 для вида маркера, отображаемого при значении TYPE = square, указывается незакрашенный квадратик (square outline).

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

              • .

                Пример записи:

              • .

                Примечание

                Браузеры по-разному интерпретируют указание вида маркера для отдельного элемента списка. Браузер Netscape изменяет вид маркера для данного и всех последующих, пока не встретится очередное переопределение вида маркера. Браузер Internet Explorer изменяет вид маркера только для данного элемента.

                Графические маркеры списка

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

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

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

                  Если же нам требуется построить список с графическими маркерами, то можно вообще обойтись без тегов

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

                  Или принудительного перевода строки
                  . Пример реализации списка с графическими маркерами, отображение которого представлено на рис. 2.2, показан ниже:

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

                    Знаки зодиака:

                      Овен

                      Телец

                      Близнeцы

                      Paк

                      Лeв

                      Дева

                      Весы

                      Скорпион

                      Cтpeлeц

                      Козерог

                      Водолей

                      Рыбы

                  Рис. 2.2. Маркированный список с графическими маркерами

                  В приведенном примере в качестве маркера элементов списка используется графический файл Green_ball.gif. Заметим, что использование графики на HTML-страницах может значительно увеличить объем передаваемой информации. Однако в данном случае это увеличение крайне незначительно. Здесь для всех маркеров используется один и тот же файл,

                  который будет передан только один раз. Размеры файла, содержащего маленькое изображение, также крайне незначительны.

                  Примечание

                  Методы создания списков с графическими маркерами обсуждаются в свою очередь в главе 8 .

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

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

                    , с помощью которого и организуются списки такого типа в HTML-документах (OL - Ordered List, упорядоченный список).

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

                    Тэги

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

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

                    2. .

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

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

                        Наиболее яркие звезды, видимые с Земли:

                        • Сириус

                        • К анопус

                        • Арктур

                        • Альфа Центавра

                        • Вега

                        • К апелла

                        • Ригель

                        • Процион

                        • Ахернар

                        • Бета Центавра

                        • Ветельгейзе

                        • Альдебаран


                          . . .

                        • Мицар


                          . . .

                        • Пoляpнaя

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

                      В тэге

                        могут быть указаны следующие параметры: COMPACT, TYPE и START.

                        Параметр COMPACT имеет тот же смысл, что и у маркированных списков. Параметр TYPE используется для задания вида нумерации списка. Может принимать следующие значения:

                        TYPE = А - задает маркеры в виде прописных латинских букв;

                        TYPE = а - задает маркеры в виде строчных латинских букв;

                        TYPE = I - задает маркеры в виде больших римских цифр;

                        TYPE = i - задает маркеры в виде маленьких римских цифр;

                        TYPE = 1 - задает маркеры в виде арабских цифр.

                        По умолчанию всегда используется значение TYPE = 1, т. е. нумерация при помощи арабских цифр. Это касается и вложенных нумерованных списков. Здесь, в отличие от маркированных списков, браузеры по умолчанию не делают различной нумерацию на различных уровнях вложенности списков. Заметим, что после номера элемента списка всегда дополнительно выводится знак "точка".

                        Параметр TYPE с теми же значениями может употребляться для указания вила нумерации отдельных элементов списка. Для этого параметр TYPE с соответствующим значением разрешено указывать в тэге элемента списка

                      1. .

                        Пример записи:

                      2. .

                        Параметр START тега

                          позволяет начать нумерацию списка не с единицы. В качестве значения параметра START всегда должно указываться натуральное число, вне зависимости от вида нумерации списка. Приведем пример:

                            .

                            Такая запись определяет нумерацию списка с прописной латинской буквы "E". Для других видов нумерации запись START=5 задаст нумерацию, соответственно, с числа "5", римской цифры "V" и т. д.

                            Изменение вида нумерации списка и значений номеров допустимо производи ть и для любого элемента списка. Тег

                          1. для нумерованных списков разрешает использовать параметры TYPE и VALUE. Параметр TYPE может прини мать такие же значения, как и для тега
                              .

                              П ример записи:

                            1. .

                              Примечание

                              Браузеры по-разному интерпретируют указание вида нумерации для отдельного элемента списка. Браузер Netscape изменяет вид нумерации для данного элемента и всех последующих, пока не встретится очередное переопределение. Браузер Internet Explorer изменяет вид номера только для данного элемента.

                              З начение параметра VALUE тега

                            2. - позволяет изменить номер данного элем ента списка. При этом изменяется нумерация и всех последующих элементов. Типичным применением являются списки с пропуском некоторых эл ементов. Пример такого списка был приведен выше (рис. 2.3). В нем дается уп орядоченный список наиболее ярких звезд, в котором на 58 и 75 местах р асположены звезды, хорошо видимые в наших широтах (Мицар - наиболее яркая звезда созвездия Большая Медведица, а Полярная звезда - Малой Медведицы).

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

                            3. нет никаких данных. Пример такого рода можно использовать в качестве таблицы соответствия между записью чисел арабскими и римскими цифрами. Оказывается, что любой браузер, поддерживающий списки, можно использовать в качестве генератора такой таблицы (рис. 2.4), стоит лишь набрать приводимый HTML-код. Нумерация римскими цифрами правильно работает вплоть до значения 3999. Изучая правый столбец, можно понять, как выполняется нумерация латинскими буквами. По исчерпании однобуквенной нумерации (от А до Z) в качестве следующего номера берется первый двухбуквенный номер - АА и т. д.

                              Использование различного типа нумерации в списках


                                1. . . .


                              1. . . .


                              1. . . .

                              Рис. 2.4. Различные типы нумерации HTML-списков

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

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

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

                              (Definition List). Внутри контейнера тэгом
                              (Definition Term) помечается определяемый термин, а тэгом
                              (Definition Description) - абзац с его определением. Для тегов
                              и
                              можно не записывать соответствующие закрывающие тэги.

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

                              Термин

                              Определение термина

                              В тексте после тега

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

                              Или заголовков

                              -

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

                              В тэге

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

                              Приведем пример HTML-документа, в котором использован список определений:

                              Пример списка определений

                              Классификация типичных темпераментов человека,
                              основанная

                              на воззрениях Гиппократа

                                Флегматик

                                Пассивный, очень трудоспособный, медленно приспосабливающийся;
                                настроение устойчивое, мало поддается внешнему влиянию;
                                вялость эмоциональных реакций и медлительность в волевой деятельности

                                Сангвиник

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

                                Холерик

                                Активный, очень энергичный, настойчивый;
                                порывистость и сила эмоциональных реакций, бурные волевые проявления

                                Меланхолик

                                Пассивный, легко утомляющийся, тяжело приспосабливающийся,-
                                слабость волевых проявлений и преобладание подавленного настроения, неуверенность в себе

                              Отображение приведенного HTML-документа в браузере показано на рис. 2.5.

                              Рис. 2.5. Список определений (напоминает группу статей в словаре)

                              Списки типа

                              и

                              Списки типа

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

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

                                Для списков типа

                                планировалось ввести ограничение на«длину текста элемента списка (24 символа). Такое ограничение позволило бы выводить

                                списки типа

                                в виде, подобном выводу списка каталогов в операционных системах UNIX и MS-DOS при использовании ключа /W (в несколько колонок). Кроме этого, для элементов списков такого типа не отображались маркеры.

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

                                  .

                                  Вложенные списки

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

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

                                  Пример вложенного списка

                                    Спутники некоторых планет

                                  • Земпя

                                      1. Луна

                                  • Mapc

                                      1. Фобос

                                      2. Деймос

                                  • Уран

                                      1. Ариэль

                                      2. Умбриэль

                                      3. Титания

                                      4. Оберон

                                      5. Миранда

                                  • Нептун

                                      1. Тритон

                                      2. Нереида

                                    Доброго времени суток!

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

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

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

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

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

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

                                    А вот так выглядит в браузере:

                                    Рис. 1.1. Стандартный вид маркированного ненумерованного списка HTML в браузере

                                    1.1 Стандартные маркеры для маркированного списка

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

                                    1.2 Маркер списка в виде пустого круга

                                    Значения атрибута вы знаете, а сейчас посмотрим как сделать маркированный список HTML в коде. Из таблицы выше мы выбрали второе значение "circle" для атрибута type и задали его нашему маркированному списку:

                                    <html > <head > <title > Пример маркированного списка с маркером в виде пустого круга</ title > </ head > <body > <p > Звезды:</ p > <ul type = "circle" > <li > Сириус</ li > <li > Арктур</ li > <li > Поллукс</ li > <li > Бетельгейзе</ li > <li > Солнце</ li > </ ul > </ body > </ html >

                                    Сразу смотрим как этот код будет выглядеть в браузере:

                                    Рис. 1.2. Вид маркера для списка в виде окружности в браузере

                                    1.3 Маркер списка в виде квадрата

                                    Посмотрим также и последний пример с квадратным маркером для HTML списка:

                                    Обратите внимание на маркер, он стал квадратным:

                                    Рис. 1.3. Вид маркера для списка в виде квадрата в браузере

                                    Важное замечание: сейчас уже не используется такой способ для создания стилей маркированным спискам. Существует четкое разделение CSS (что такое CSS читайте ) и HTML. HTML — для разметки, а CSS — для создания привлекательного внешнего вида.

                                    Код, который содержит данный атрибут, при указания типа текущего документа как HTML5 (""), выдаст ошибку при валидации. Если не слышали что такое валидация, то вам сюда — .

                                    Ошибка будет следующая:

                                    Рис. 1.4. Ошибка на валидаторе при использовании атрибута "type" у списка

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

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

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

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

                                    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <html > <head > <title > Пример стандартного нумерованного списка</ title > </ head > <body > <p > От одного до пяти:</ p > <ol > <li > Первый</ li > <li > Второй</ li > <li > Третий</ li > <li > Четвертый</ li > <li > Пятый</ li > </ ol > </ body > </ html >

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

                                    Рис. 2.1. Нумерованный список в браузере со стандартными настройками

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

                                    2.1 Стандартные маркеры для нумерованного списка

                                    Здесь у нас есть выбор не из трех видов маркеров, а из пяти:

                                    Название маркера Значение атрибута "type" Пример списка
                                    Маркеры в виде арабских чисел 1
                                    • Бадминтон
                                    • Бейсбол
                                    Маркеры в виде строчных латинских букв a
                                    • Джомолунгма
                                    • Чогори
                                    • Канченджанга
                                    Маркеры в виде заглавных латинских букв A
                                    • Summit Plummet
                                    • Tantrum Alley
                                    • Insano
                                    Маркеры в виде римских цифр в нижнем регистре i
                                    • Филиппинское море
                                    • Аравийское море
                                    • Коралловое море
                                    Маркеры в виде римских цифр в верхнем регистре I
                                    • Красный
                                    • Зеленый
                                    • Синий

                                    2.2 Своя нумерация в списке HTML

                                    Кроме обычного вывода нумерованного списка мы также можем начать свою нумерацию с любой цифры. Для этого необходимо задать дополнительный атрибут "start" . Такая нумерация работает на всех видах маркеров у нумерованных списков. Как это выглядит на практике:

                                    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <html > <head > <title > Произвольная нумерация для нумерованного списка</ title > </ head > <body > <p > Начинаем нумерацию с двенадцати:</ p > <ol type = "a" start = "12" > <li > Двенадцать</ li > <li > Тринадцать</ li > <li > Четырнадцать</ li > <li > Пятнадцать</ li > <li > Шестнадцать</ li > </ ol > </ body > </ html >

                                    Вот как это будет отображаться на реальном сайте:

                                    Рис. 2.2. Нумерация с произвольного числа в нумерованном списке

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

                                    Ну а сейчас перейдем к вложенным спискам HTML.

                                    3. Как сделать многоуровневый (вложенный) список в HTML

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

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

                                    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 <html > <head > <title > Вложенный маркированный список HTML</ title > </ head > <body > <ul > <li > Citroen <ul > <li > Berlingo</ li > <li > C1</ li > <li > C2</ li > <li > C3 Picasso</ li > <li > C4 Grand Picasso</ li > </ ul > </ li > <li > KIA</ li > <li > Toyota</ li > <li > Audi</ li > <li > Lexus</ li > </ ul > </ body > </ html >

                                    Обратите внимание, как выглядит многоуровневый список в браузере:

                                    Рис. 3.1. Пример многоуровневого списка в HTML

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

                                      ). Многоуровневый список с моделями Citroen появился с другими маркерами. Основной список с закрашенными маркерами, а список на 2-м уровне — с пустыми кружками. Но, как помните, с помощью атрибута "type" мы можем переопределить маркеры (лучше задавать ).

                                      Но мы можем объединить многоуровневые списки с нумерованными и маркированными следующим образом:

                                      1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 <html > <head > <title > Нумерованные, маркированные и многоуровневые списки в HTML</ title > </ head > <body > <ul > <li > Первая группа тюльпанов <ol > <li > Первый класс <ul > <li > Простые ранние тюльпаны</ li > </ ul > </ li > <li > Второй класс <ul > <li > Махровые тюльпаны</ li > </ ul > </ li > </ ol > </ li > </ ul > </ body > </ html >

                                      В примере выше у нас двойная вложенность (2 уровня). Сначала вкладывается список из двух классов тюльпанов, он у нас нумерованный. Затем в каждый из элементов нумерованного списка вкладывается маркированный список.

                                      Смотрим его вид в браузере:

                                      Рис. 3.2. Пример многоуровневого нумерованного списка в маркированный список в браузере

                                      4. Полезные материалы по спискам HTML

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

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

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

                                      4.2 Как сделать список HTML без значка

                                      За это отвечает свойство list-style-type в CSS (подробнее ):

                                      4.3 Как сделать список в HTML по центру

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

                                      4.4 Как сделать список в HTML с картинками

                                      Достаточно лишь одного свойства CSS list-style-image . Внутри url указать адрес до иконки. Хочу лишь заметить, что изображение лучше сразу подбирать маленькое, потому что от него зависит высота строки списка:

                                      4.5 Маркированный список HTML свой маркер

                                      В этом случае необходимо заранее подключить шрифтовые иконки (например, FontAwesome ). Тогда можно сделать любую иконку вместо стандартного маркера:

                                      4.6 Как сделать список в HTML в несколько столбцов

                                      Чтобы сделать список в несколько столбцов мы воспользуемся свойством CSS column-count (свойство поддерживается только в следующих браузерах: IE 10+, Chrome 1.0+, Opera 11.1+, Safari 3.0+, Firefox 1.5+). Также необходимо задать высоту для списка, чтобы увидеть разбиение на несколько столбцов:

                                      5. Практика работы со списками

                                      На видео ниже вы можете увидеть всю работу со списками HTML на практике:

                                      Нумерованные списки. Теги
                                        и
                                      1. ,

                                      В HTML 5 используется три вида списков: нумерованный, маркированный и список определения.

                                      Нумерованный список формируется парным тегом

                                        (от англ. ordered list ). Сам элемент "ol" используется, как контейнер для пунктов списка, которые формируются парными тегами
                                      1. По умолчанию пункты списка нумеруются браузером по порядку, начиная с единицы. Если нумерацию нужно начать не с единицы, то используется атрибут start , который задает число, с которого будет начинаться нумерованный список. В качестве значения атрибут принимает целые числа. Можно также изменить порядок нумерации на обратный. Для этого служит атрибут reversed , который используется без значений. Атрибут введен в HTML 5 и работает во всех браузерах, кроме IE .

                                        Имеется также возможность устанавливать вид маркера нумерованного списка . Для этого используется атрибут type , который может принимать значения "A | a | I | i | 1" , которые, соответственно, означают:

                                        • заглавные латинские буквы,
                                        • строчные латинские буквы,
                                        • заглавные римские цифры,
                                        • строчные римские цифры,
                                        • арабские цифры.

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

                                        Использование нумерованного списка показано в примере 2.10.

                                        Нумерованный список Весенние месяцы по порядку:

                                        1. март
                                        2. апрель
                                        3. май
                                        Летние месяцы в обратном порядке:
                                        1. август
                                        2. июль
                                        3. июнь

                                        Пример 2.10. Использование элемента "ol"

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

                                        Маркированные списки. Теги
                                          и
                                        • ,

                                        Маркированный список формируется парным тегом

                                          (от англ. unordered list ). Сам элемент "ul" используется, как контейнер для пунктов списка, которые формируются, как и в случае с нумерованными списками, парными тегами
                                        • и располагаются друг за другом.

                                          Маркированный список вместо цифр и букв использует маркеры в виде кружков. Изменить внешний вид маркеров можно при помощи стилей CSS . Что касается атрибута type , то его в HTML 5 убрали. Так что, остались только универсальные атрибуты и атрибуты-события.

                                          Маркированный список Весенние месяцы:

                                          • март
                                          • апрель
                                          • май

                                          Пример 2.11. Использование элемента "ul"

                                          Списки определений. Теги
                                          ,
                                          ,

                                          Список определений формируется парным тегом

                                          (от англ. definition list ). Сам элемент "dl" используется, как контейнер для пунктов списка. Каждый такой пункт, в свою очередь, состоит из элементов "dt" (от англ. definition term ) и "dd" (от англ. definition description ), сформированных, соответственно, парными тегами
                                          и
                                          . Первый из них содержит определяемый термин, а второй - определение термина.

                                          Давайте для наглядности посмотрим пример 2.12.

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

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

                                          Пример 2.12. Использование элемента "dl"

                                          Вложенные списки

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

                                          Вложенные списки

                                          1. Три сорта яблок:
                                            • Антоновка,
                                            • Штрефель,
                                            • Кубань.
                                          2. Три сорта груш:
                                            1. Чижовская,
                                            2. Вильямс,
                                            3. Дюшес.

                                          Пример 2.13. Использование вложенных списков

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

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

                                          Быстрый переход к другим страницам

                                          • Создание списков в HTML. Теги
                                              ,
                                                ,
                                              • ,
                                                ,
                                                ,

                                              Влад Мержевич

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

                                              Рис. 5.17. Трёхколоночные макеты

                                              Здесь символ процентов (%) означает, что ширина колонки задана в процентах от ширины макета, px - ширина колонки указана в пикселах, а знак бесконечности (∞), что колонка занимает оставшееся пространство. Несмотря на обилие разных макетов, принципы их построения остаются одинаковыми и включают два основных способа: позиционирование и плавающие элементы. Также можно воспользоваться таблицами для создания колонок одинаковой высоты.

                                              Использование позиционирования

                                              Для управления положением слоёв относительно родительского элемента необходимо для родителя установить свойство position со значением relative , а дочерним элементам, которые формируют колонки, значение absolute . Структура кода для первых четырёх макетов будет одинаковой и представлена в примере 5.13.

                                              Пример 5.13. Две колонки в пикселах или три в процентах

                                              Три колонки

                                              Шапка сайта
                                              Колонка 1
                                              Колонка 2
                                              Колонка 3

                                              Здесь колонки пронумерованы по порядку, т.е. колонка 1 располагается слева, колонка 2 по центру, а колонка 3 справа.

                                              У позиционирования есть определённый недостаток, который ограничивает применение этого метода - при добавлении подвала он будет скрыт под колонками. Это связано с тем, что у слоя layout нет высоты как таковой, поэтому он не «толкает» слой с подвалом вниз. Если подвал непременно требуется на странице, следует воспользоваться методом построения колонок, основанным на плавающих элементах. Ещё этот метод не работает в IE6 из-за наличия в нём ошибок.

                                              Для макета № 1, в котором ширина первой колонки резиновая, а остальных фиксирована, стиль будет следующим (пример 5.14).

                                              Пример 5.14. Макет № 1

                                              Header { background: #D5BAE4; } .layout { position: relative; /* Относительное позиционирование */ } .layout DIV { position: absolute; /* Абсолютное позиционирование */ } .col1 { background: #C7E3E4; /* Цвет фона */ left: 0; /* Положение левого края */ right: 300px; /* Положение правого края */ } .col2 { background: #E0D2C7; width: 200px; /* Ширина колонки */ right: 100px; /* Сдвигаем влево на ширину колонки 3 */ } .col3 { background: #ECD5DE; width: 100px; right: 0; }

                                              У колонок с заданной шириной стоит свойство width , а их положение слева или справа задаётся соответственно свойством left или right . Резиновая ширина оставшейся колонки строится после одновременного добавления left и right , значения которых совпадают с шириной фиксированных колонок.

                                              Макеты № 2 (пример 5.15) и № 3 (пример 5.16) построены на том же принципе.

                                              Пример 5.15. Макет № 2

                                              Header { background: #D5BAE4; } .layout { position: relative; } .layout DIV { position: absolute; } .col1 { background: #C7E3E4; width: 100px; } .col2 { background: #E0D2C7; left: 100px; right: 200px;} .col3 { background: #ECD5DE; width: 200px; right: 0; }

                                              Пример 5.16. Макет № 3

                                              Header { background: #D5BAE4; } .layout { position: relative;} .layout DIV { position: absolute; } .col1 { background: #C7E3E4; width: 100px; } .col2 { background: #E0D2C7; width: 200px; left: 100px; } .col3 { background: #ECD5DE; left: 300px; right: 0; }

                                              Макет № 4, в котором ширина всех колонок задана в процентах имеет некоторые нюансы. Если требуется одинаковая ширина всех колонок, её можно задать дробно (33.33%), но браузер Opera не умеет работать с дробными значениями процентов, поэтому в нём между колонками появятся «дыры» (рис. 5.18).

                                              Рис. 5.18. Ширина колонок, заданная в дробных процентах

                                              В подобных ситуациях следует перейти на неравные доли, к примеру, 33%, 34%, 33%, как показано в примере 5.17.

                                              Пример 5.17. Макет № 4

                                              Header { background: #D5BAE4; } .layout { position: relative;} .layout DIV { position: absolute; } .col1 { background: #C7E3E4; width: 33%; } .col2 { background: #E0D2C7; left: 33%; width: 34%; } .col3 { background: #ECD5DE; right: 0; width: 33%; }

                                              В некоторых браузерах возможно появление небольшого промежутка между колонками. Решается использованием не целых, а дробных значений процентов, т.е. 33.3% вместо 33%.

                                              Оставшиеся макеты, в которых две колонки из трёх резиновые, представляют особую группу, потому что их можно трактовать по-разному. Так, ширина одной колонки указывается в пикселах, другой в процентах от ширины макета, а ширина оставшейся вычисляется автоматически. На рис. 5.19 показаны разные подходы к вычислению ширины колонок на примере макета № 5.

                                              Рис. 5.19. Ширина двух резиновых колонок

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

                                              Первый и второй вариант легко реализуется аналогично коду с двумя колонками в пикселах. Только вместо ширины в px указываем %. В примере 5.18 приведён стиль макета № 5 с первой колонкой заданной в процентах.

                                              Пример 5.18. Макет № 5. Ширина второй колонки вычисляемая

                                              Header { background: #D5BAE4; } .layout { position: relative;} .layout DIV { position: absolute; } .col1 { background: #C7E3E4; width: 50%; } .col2 { background: #E0D2C7; left: 50%; right: 200px; } .col3 { background: #ECD5DE; right: 0; width: 200px; }

                                              Стиль макета № 5 с вычисляемой первой колонкой показан в примере 5.19.

                                              Пример 5.19. Макет № 5. Ширина первой колонки вычисляемая

                                              Header { background: #D5BAE4; } .layout { position: relative;} .layout DIV { position: absolute; } .col1 { background: #C7E3E4; left: 0; right: 200px; margin-right: 50%; } .col2 { background: #E0D2C7; width: 50%; right: 200px; } .col3 { background: #ECD5DE; width: 200px; right: 0; }

                                              Первой колонке нельзя задать ограничение справа через свойство right , поскольку значение будет равно 50%+200px, в CSS2 таких вычисляемых значений нет. Поэтому применим фокус - ограничим первый слой справа шириной 200px через right и сдвинем его влево на ширину второй колонки 50% с помощью margin-right . Слой у нас абсолютно позиционированный, поэтому такие махинации никак на ширине не скажутся.

                                              Третий вариант с двумя резиновыми колонками требует наличия дополнительного слоя, назовём его rubber , относительно которого будет задаваться ширина колонок (пример 5.20).

                                              Пример 5.20. Макет № 5. Ширина двух колонок в процентах

                                              Три колонки

                                              Шапка сайта
                                              Колонка 1
                                              Колонка 2
                                              Колонка 3

                                              Построение макета № 6 аналогично макету № 5, поэтому останавливаться на нём не будем. Что касается макета № 7, то для него существует вариант, который может вызвать трудность. Это касается того случая, когда требуется сделать ширину левой и правой колонки вычисляемыми и равными между собой. Для этого ширину первой и третьей колонки следует сделать равной 50% (рис. 5.20).

                                              Рис. 5.20. Макет № 7 с равными по ширине колонками

                                              Чтобы осталось место под вторую колонку, воспользуемся свойством margin-right для первой колонки и margin-left для третьей. Значением этих свойств будет половина ширины второй колонки. Так, если она равна 200px, то получится margin-right : 100px (пример 5.21).

                                              Пример 5.21. Макет № 7. Ширина резиновых колонок одинакова

                                              Header { background: #D5BAE4; } .layout { position: relative;} .layout DIV { position: absolute; } .col1 { background: #C7E3E4; left: 0; right: 50%; margin-right: 100px; } .col2 { background: #E0D2C7; width: 200px; left: 50%; margin-left: -100px; } .col3 { background: #ECD5DE; left: 50%; right: 0; margin-left: 100px; }

                                              Напрямую свойством width пользоваться нельзя, поскольку добавление margin только увеличит ширину, а не уменьшит, как нам требуется. Поэтому ширина формируется одновременно заданными свойствами left и right . С позиционированием второй колонки возникают сложности в указании значения left или right , поскольку оно будет равно 50%-200px. Так что устанавливаем положение левого края на 50% (left : 50% ), а затем колонку целиком сдвигаем влево на половину её ширины через свойство margin-left (margin-left : -100px ).

                                              Поскольку ширина некоторых колонок вычисляется автоматически, рекомендуется сделать ограничение по минимальной ширине макета, добавив свойство min-width для селектора BODY . Тогда ширина колонок не станет уменьшаться при достижении заданного предела.

                                              BODY { min-width: 800px; /* Минимальная ширина макета */ }

                                              Значение min-width зависит от макета и содержимого страницы и обычно подбирается опытным путём.

                                              Использование плавающих элементов

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

                                              Построение колонок происходит с помощью свойства float в сочетании со свойствами margin и width . В зависимости от выбранного макета меняется и порядок колонок в коде, вначале всегда следуют слои, к которым добавляется float .

                                              Макет № 1. Резиновая первая колонка

                                              Ширина второй и третьей колонки указывается в пикселах, а их положение через свойство float со значением right . Для первой колонки также требуется задать свойство margin-right со значением равным суммарной ширине остальных колонок (пример 5.22).

                                              Пример 5.22. Макет № 1

                                              Макет 1

                                              Шапка сайта
                                              Колонка 3
                                              Колонка 2
                                              Колонка 1

                                              Макет № 2. Резиновая средняя колонка

                                              Ширина первой и третьей колонки задана в пикселах, а их положение - через свойство float со значением left для первой колонки и right для третьей. Средняя колонка, чтобы она сохраняла свой вид, содержит универсальное свойство margin , задающее отступ слева и справа (пример 5.23).

                                              Пример 5.23. Макет № 2

                                              XHTML 1.0 CSS 2.1 IE Cr Op Sa Fx

                                              Макет 2

                                              Шапка сайта
                                              Колонка 1
                                              Колонка 3
                                              Колонка 2

                                              Макет № 3. Резиновая третья колонка

                                              Положение первой и второй колонки указывается через свойство float со значением left , для третьей колонки нужно установить отступ слева (margin-left ) на суммарную ширину остальных колонок (пример 5.24).

                                              Пример 5.24. Макет № 3

                                              XHTML 1.0 CSS 2.1 IE Cr Op Sa Fx

                                              Макет 3

                                              Шапка сайта
                                              Колонка 1
                                              Колонка 2
                                              Колонка 3

                                              Макет № 4. Ширина всех колонок задана в процентах

                                              Для построения этого макета подойдёт множество вариантов, основанных на предыдущих макетах, только вместо пикселов следует указать проценты. Ещё один способ показан в примере 5.25, где используется только свойство float и width .

                                              Пример 5.25. Макет № 4

                                              XHTML 1.0 CSS 2.1 IE Cr Op Sa Fx

                                              Макет 4

                                              Шапка сайта
                                              Колонка 1
                                              Колонка 2
                                              Колонка 3

                                              Макет № 5. Ширина двух колонок резиновая

                                              На рис. 5.19 было продемонстрировано, что макет № 5, у которого две резиновые колонки, можно трактовать по-разному.

                                              1. Ширина первой колонки указана в процентах от ширины макета, третьей колонки в пикселах, а средняя колонка занимает оставшееся место.
                                              2. Ширина второй колонки указана в процентах от ширины макета, третьей колонки в пикселах, а первая колонка занимает оставшееся место.
                                              3. Суммарная ширина двух резиновых колонок принимается за 100%, и ширина колонок указывается в процентах от этой величины.

                                              Ширина средней колонки вычисляемая

                                              Здесь ширина первой колонки указывается в процентах, а её положение через свойство float со значением left , для третьей колонки ширина задана в пикселах, а значение свойства float как right . Для средней колонки остаётся только установить отступы слева и справа на ширину колонок (пример 5.26).

                                              Пример 5.26. Макет 5.1

                                              XHTML 1.0 CSS 2.1 IE Cr Op Sa Fx

                                              Макет 5.1

                                              Шапка сайта
                                              Колонка 1
                                              Колонка 3
                                              Колонка 2

                                              Ширина первой колонки вычисляемая

                                              Это наиболее хитрый макет, поскольку для первой колонки её ширина напрямую не указывается. Но чтобы ограничить контент необходимо для свойства margin-right указать значение совмещающее проценты и пикселы. В CSS2, как уже говорилось, подобное задать нельзя, поэтому добавим внутрь слоя col1 ещё один слой с именем wrap и добавим отступ каждому из этих слоёв. Одному в процентах, другому в пикселах (пример 5.27).

                                              Пример 5.27. Макет 5.2

                                              XHTML 1.0 CSS 2.1 IE Cr Op Sa Fx

                                              Макет 5.2

                                              Шапка сайта
                                              Колонка 3
                                              Колонка 2
                                              Колонка 1

                                              Ширина двух колонок в процентах

                                              В этом макете общая ширина резиновых колонок принимается за 100%, поэтому нам потребуется дополнительный слой, относительно которого будет отсчитываться ширина внутренних колонок. Этот слой с именем rubber совместно со слоем col3 работает как двухколоночный макет, а внутренние слои col1 и col2 выстраиваются по горизонтали за счёт применения свойства float (пример 5.28).

                                              Пример 5.28. Макет 5.3

                                              XHTML 1.0 CSS 2.1 IE Cr Op Sa Fx

                                              Макет 5.3

                                              Шапка сайта
                                              Колонка 3
                                              Колонка 2
                                              Колонка 1

                                              Макеты 6, 7 и их разновидности строятся по тому же принципу, что и макет № 5, за исключением макета № 7, в котором ширина левой и правой колонки резиновая и равна между собой.

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

                                              Колонка 1
                                              Колонка 3
                                              Колонка 2

                                              Col1 { width: 50%; float: left; } .col2 { width: 200px; float: left; } .col3 { width: 50%; float: right; }

                                              Это ещё не всё, слои пока никаких колонок не формируют и выстраиваются совершенно не подходящим для нас способом. Требуется сместить вторую колонку влево на половину её ширины (margin-left : -100px ) и заставить третью колонку встать на своё место. Для этого надо увеличить её ширину так, чтобы она была равна или больше, чем 50%+100px (половина второй колонки). Лучше всего подойдёт свойство margin-left с отрицательным значением, после этого колонки будут созданы. Есть ещё некоторые нюансы. Крайние колонки состыкованы между собой, что хорошо заметно, когда их высота превышает высоту средней колонки (рис. 5.21).

                                              Рис. 5.21. Состыкованные колонки

                                              К тому же в левой колонке текст справа, а в правой колонке текст слева скрывается под фоном центральной колонки. Это будет не заметно, если высота этой колонки большая, но это не всегда возможно. Чтобы преодолеть указанные недостатки, необходимо вложить внутрь крайних колонок ещё по одному слою (в примере он называется wrap ) и уже для них задать цвет фона колонки, необходимые поля и отступы. Окончательный код приведён в примере 5.29.

                                              Пример 5.29. Макет № 7

                                              XHTML 1.0 CSS 2.1 IE Cr Op Sa Fx

                                              Макет 7

                                              Шапка сайта
                                              Колонка 1
                                              Колонка 3
                                              Колонка 2

                                              Поля и границы в трёхколоночном макете

                                              В приведённые примеры макетов намеренно не добавлялось свойство padding , поскольку код служит лишь основой макета, и вы сами должны в конкретных случаях решать, нужны поля в колонках или нет. Добавление полей и границ к блочному элементу увеличивает его ширину, что надо учитывать при вёрстке. Однако ширина вырастает, только если для слоя установлено значение width . Рассмотрим несколько примеров, где ширина будет меняться, а где нет.

                                              Div { /* padding влияет на ширину */ width: 200px; padding: 10px; } div { /* padding не влияет на ширину */ position: absolute; left: 20px; right: 20px; padding: 10px; } div { /* padding влияет на ширину */ float: left; width: 50%; padding: 10px; } div { /* padding не влияет на ширину */ margin-right: 50%; padding: 10px; }

                                              В тех колонках, где padding или border требуется, но их добавление приведёт к «ломке» макета, можно воспользоваться вложенным слоем и установить необходимые свойства для него.

                                              Колонка

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

                                              Таблица в качестве колонок

                                              Таблицу удобно использовать для простого и быстрого создания колонок одинаковой высоты. Такая быстрота достигается несколькими вещами. Во-первых, структура кода для любого макета остаётся одинаковой, колонки в коде, как в случае с float , свой порядок никогда не меняют. Во-вторых, ширина ячеек вычисляется автоматически исходя из их содержимого, поэтому достаточно указать ширину нужных колонок, а оставшиеся подстроятся под общую ширину таблицы. В примере 5.30 показан макет № 1 сделанный на таблице.

                                              Пример 5.30. Макет № 1

                                              XHTML 1.0 CSS 2.1 IE Cr Op Sa Fx

                                              Макет 1

                                              Шапка сайта
                                              Колонка 1 Колонка 2 Колонка 3

                                              Добавление свойства padding к селектору TD отменяет действие атрибута cellpadding тега

                                              и добавляет поля к содержимому ячеек. При этом сама ширина колонок никак не изменится.

                                              Макет № 2

                                              Header, .footer { background: #D5BAE4; } .layout { width: 100%;} .layout TD { padding: 5px; vertical-align: top; } .col1 { background: #C7E3E4; width: 100px; } .col2 { background: #E0D2C7; } .col3 { background: #ECD5DE; width: 200px; }

                                              Макет № 3

                                              Header, .footer { background: #D5BAE4; } .layout { width: 100%;} .layout TD { padding: 5px; vertical-align: top; } .col1 { background: #C7E3E4; width: 100px; } .col2 { background: #E0D2C7; width: 200px; } .col3 { background: #ECD5DE; }

                                              Макет № 4

                                              Header, .footer { background: #D5BAE4; } .layout { width: 100%;} .layout TD { padding: 5px; vertical-align: top; } .col1 { background: #C7E3E4; width: 33%; } .col2 { background: #E0D2C7; width: 34%; } .col3 { background: #ECD5DE; width: 33%; }

                                              В макете 6.1 ширина первой колонки установлена в пикселах, третьей в процентах, а средняя колонка занимает оставшееся место.

                                              Макет № 6.1

                                              Header, .footer { background: #D5BAE4; } .layout { width: 100%;} .layout TD { padding: 5px; vertical-align: top; } .col1 { background: #C7E3E4; width: 200px; } .col2 { background: #E0D2C7; } .col3 { background: #ECD5DE; width: 40%; }

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

                                              Ширина для крайних колонок устанавливается равной 50%, а для средней колонки она задаётся в пикселах. Чтобы все размеры соблюдались к таблице необходимо добавить свойство table-layout со значением fixed .

                                              Layout { width: 100%; table-layout: fixed; } .col1 { width: 50%; } .col2 { width: 200px; } .col3 { width: 50%; }

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

                                              В примере 5.31 приведён полный код макета № 7.

                                              Пример 5.31. Макет № 7

                                              XHTML 1.0 CSS 2.1 IE Cr Op Sa Fx

                                              Макет 7

                                              Он встал под дерево и ждет,
                                              И вдруг граахнул гром.
                                              Летит ужасный бармаглот,
                                              И пылкает огнем.

                                              Раз-два, раз-два! Горит трава, Взы-взы - стрижает меч,
                                              Ува! Ува! И голова
                                              Барабардает с плеч.

                                              Льюис Кэрролл, перевод Дины Орловой, рисунки Джона Тенниела

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

                                              Рис. 5.22. Колонка по центру макета



Рекомендуем почитать

Наверх