Ul li

Задача

Отобразить маркированый список горизонтально без маркеров.

Решение

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

Вам уже должно быть известно, что в HTML есть блочные и строчные элементы. Строчные элементы не создают своих блоков, пример таких элементов — это теги <span> или <strong>. Блочные элементы отображаются с новой строки и создают прямоугольный блок, пример таких тегов <div> или <p>. Так вот, тег <li> также является блочным элементом.

Чтобы тег <li> не вёл себя как блочный элемент, можно при помощи CSS сделать его строчным.

За то, как элемент будет отображён в документе отвечает CSS свойство display. Рассмотрим три его значения (хотя их больше):

  • block — элемент отображается как блочный.
  • inline — элемент отображается как строчный.
  • inline-block — блочно-строчный элемент, подробнее про этот тип элементов читайте ниже, мы будем его использовать.

Сначала сделаем горизонтальный список превратив его пунткы в строчные элементы. В стиле CSS пропишем правило, в котором селектору li установлено свойство display со значением inline.

<!DOCTYPE html> <html> <head> <title>Список горизонтально</title> <style> 	ul.menu-top > li { 		display: inline;	/* Располагаем элементы по горизонтали */ 		list-style: none;	/* Убираем маркеры списка */ 		padding: 5px;		/* Поля вокруг текста */ 	 border: solid 1px #000000; 	 background-color: #fffff0; 	} </style> </head> <body> <ul class="menu-top"> 	<li>Пункт 1</li> 	<li>Пункт 2</li> 	<li>Пункт 3</li> </ul>  </body> </html>

Знак > в селекторе указывает что мы обращаемся только к дочерним элементам <li> тега <ul> с классом menu-top. Читайте подробнее про дочерние селекторы.

Итак, этот стиль сработал и получили горизонтальное расположение пунктов списка:

CSS: как разместить элементы списка горизонтально: работа примера №1
Рисунок 1. Работа примера №1.

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

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

   
<style> ul.menu-top > li { display: inline; /* Располагаем элементы по горизонтали */ list-style: none; /* Убираем маркеры списка */ padding: 5px; /* Поля вокруг текста */ border: solid 1px #000000; background-color: #fffff0; width: 150px; height: 40px; } </style>

Эти правки не приведут ни к каким изменениям. Чтобы элементы меню располагались горизонтально и можно было устанавливать их ширину и высоту им нужно установить тип inline-block. Изменим код нашего примера:

<!DOCTYPE html> <html> <head> <title>Список горизонтально</title> <style> 	ul.menu-top > li { 		display: inline-block;	/* Располагаем элементы по горизонтали */ 		list-style: none;	/* Убираем маркеры списка */ 		padding: 5px;		/* Поля вокруг текста */ 	 border: solid 1px #000000; 	 background-color: #fffff0; 	 width: 150px; 	 height: 40px; 	} </style> </head> <body> <ul class="menu-top"> 	<li>Пункт 1</li> 	<li>Пункт 2</li> 	<li>Пункт 3</li> </ul>  </body> </html>    

Этот код работает и изменения видны:

CSS: как разместить элементы списка горизонтально: работа примера №2
Рисунок 2. Работа примера №2.

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

<!DOCTYPE html> <html> <head> 	<title>Вложенный список.</title> 	<style> 	ul.menu > li { 		display: inline-block;	/* Располагаем элементы по горизонтали */ 		list-style: none;	/* Убираем маркеры списка */ 		padding: 5px;		/* Поля вокруг текста */ 	 background-color: #fffff0; 	 border: 1px solid #000000; 	} 	</style> </head> <body>  <ul class="menu"> 	<li>Правка 	<ul> 		<li><a href="#">Отменить</a></li> 		<li><a href="#">Вырезать</a></li> 		<li><a href="#">Копировать</a></li> 		<li><a href="#">Вставить</a></li> 	</ul> 	</li> 	<li>Начертание 	<ul> 		<li><a href="#">Жирное</a></li> 		<li><a href="#">Курсивное</a></li> 		<li><a href="#">Подчеркнутое</a></li> 	</ul> 	</li> 	<li>Размер 	<ul> 		<li><a href="#">Маленький</a></li> 		<li><a href="#">Нормальный</a></li> 		<li><a href="#">Средний</a></li> 		<li><a href="#">Большой</a></li> 	</ul> 	</li> </ul>  </body> </html>    

Вот результат работы этого кода:

CSS: как разместить элементы списка горизонтально: работа примера №3
Рисунок 3. Работа примера №3.

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

А собственно, почему так происходит?

Наши блоки имеют свойство display со значением inline-block. Это значит что у них есть качества как блочных элементов (возможность указать ширину и высоту), так и строчных элементов. То что мы наблюдаем — это качество строчных элементов.

Давайте рассмотрим строку с символами «А» разной величины:

А А А А А А А

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

Для выравния текста по вертикали служит свойство vertical-align. В нашем примере №3 нужно использовать значение top, которое выравняет верхнюю границу элемента по верху самого высокого элемента строки.


Пока применим его к строке с символами «А» разной величины:

А А А А А А А

Кажется, что буквы немного «скачут». Я установил CSS границу border самой высокой букве, чтобы было видно, что скачков на самом деле нет, есть пустое пространство между верхней границей (по которой происходит выравнивание) и верхней точкой символа «А».

Свойство vertical-align нужно применять к каждому строчному элементу, оно не наследуется. Вы можете прочитать подробней про это свойство: vertical-align.

После этого отступления продолжим размещать элементы списка горизонтально.

Второй способ

Разместить элементы списка горизонтально можно используя свойство float. Это свойство указывает по какой стороне выравнивается элемент, имеет две позиции: left и right.

Вот пример с использованием этого кода:

<!DOCTYPE html> <html> <head> 	<title>Список горизонтально</title> <style> ul.menu-top > li {  float: left; /* разещаем список горизонтально */  list-style: none;	/* Убираем маркеры списка */  padding: 5px;  margin: 2px;  border: 1px solid #000000;  background-color: #fffff0; } </style> </head> <body> <ul class="menu-top"> 	<li>Пункт 1</li> 	<li>Пункт 2</li> 	<li>Пункт 3</li> </ul>  </body> </html>    

Вот результат работы кода:

CSS: как разместить элементы списка горизонтально: работа примера №4
Рисунок 4. Работа примера.

Вроде пример работает. Но в использовании этого свойства есть один нюанс. Сейчас мы его рассмотрим. Для примера возьмём код, в котором есть два горизонтальных списка с разным способом расположения элементов горизонтально: display и float:

<!DOCTYPE html> <html> <head> 	<title>Список горизонтально</title> <style> ul{ 	border: 1px solid red; } ul.menu-1 > li, ul.menu-2 > li { 	list-style: none;	/* Убираем маркеры списка */ 	padding: 5px; 	margin: 2px; 	border: 1px solid #000000; 	background-color: #fffff0; } /* разещаем списки горизонтально */ ul.menu-1 > li { 	float: left; } ul.menu-2 > li { 	display: inline-block; } </style> </head> <body> <ul class="menu-2"> 	<li>Пункт 1</li> 	<li>Пункт 2</li> 	<li>Пункт 3</li> </ul>  <ul class="menu-1"> 	<li>Пункт 1</li> 	<li>Пункт 2</li> 	<li>Пункт 3</li> </ul>  </body> </html>

Вот результат работы кода:


CSS: как разместить элементы списка горизонтально: работа примера №5
Рисунок 5. Работа примера.

В этих примерах контейнеры списка <ul> имеют красную границу толщиной 1 пиксел. Но верхний список, в котором используется свойство display, включает в себя элементы списка. А вот элементы списка созданного с использованием свойства float выпадают из своего контейнера.

При этом на первый взгляд всё работает. Но давайте поменяем местами наши списки. Поставим список с классом menu-1 в коде перед списком с классом menu-2 (сейчас он ниже).

Вот что мы получим в результате:

CSS: как разместить элементы списка горизонтально: работа примера №6
Рисунок 6. Работа примера.

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

Как решить эту проблему?

Для этого нужно использовать свойство clear, оно отменяет обтекание элементом другого элемента, если у того установлено свойство float.

Вот изменённый пример с использованием свойства clear:

<!DOCTYPE html> <htm.    
;ul class="menu-1"> <li>Пункт 1</li> <li>Пункт 2</li> <li>Пункт 3</li> </ul> <ul class="menu-2"> <li>Пункт 1</li> <li>Пункт 2</li> <li>Пункт 3</li> </ul> </body> </html>

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

CSS: как разместить элементы списка горизонтально: работа примера №7
Рисунок 7. Работа примера.

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

Это делается при помощи псевдоэлемента. Вот код:

   
<!DOCTYPE html> <html> <head> <title>Список горизонтально</title> <style> ul{ border: 1px solid red; } ul.menu-1 > li, ul.menu-2 > li { list-style: none; /* Убираем маркеры списка */ padding: 5px; margin: 2px; border: 1px solid #000000; background-color: #fffff0; } /* разещаем списки горизонтально */ ul.menu-1 > li { float: left; } /* создаём псевдоэлемент для clear: both; */ ul.menu-1::after{ content: '.'; /* обязательно контент */ display: block; /* обязательно блок */ clear: both; height: 0; /* чтобы не растягивал контейнер */ } ul.menu-2 > li { display: inline-block; } </style> </head> <body> <ul class="menu-1"> <li>Пункт 1</li> <li>Пункт 2</li> <li>Пункт 3</li> </ul> <ul class="menu-2"> <li>Пункт 1</li> <li>Пункт 2</li> <li>Пункт 3</li> </ul> </body> </html>

Теперь у нас 100% рабочий код.

CSS: как разместить элементы списка горизонтально: работа примера №8
Рисунок 8. Работа примера.

Этот приём со свойством float обычно используют при вёрстке сайтов для выравнивания столбцов, которые создаются тегами <div>. Таким способом мы получаем нормальное построение столбцов с требуемым выравниванием по высоте. Когда мы создаём меню, то нам, в большенстве случаев, не важна высота блоков, она практически всегда одинакова. Поэтому использование правила {display: inline-block} в этих случаях вполне оправдано.


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

komotoz.ru

Предисловие

По умолчанию, в большинстве шаблонов данные списки имеют оформление простых цифр (нумерованный список ol li) и обыкновенных квадратиков и кружков черного цвета (ненумерованный, маркерованный список ul li).

«>

«>

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

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

На моем блоге также списки оформлены. Ненумерованные имеют вид чек-боксов в рамке с чередованием цветов через один пункт.

«>

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

«>

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

Оформление нумерованного списка ol li

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

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

Ненумерованный же список заключается в общий тег ul.

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

Также прописаны стили нумерации для каждого пункта списка.

Для маркерованного списка прописывают стиль в виде квадратиков или кружочков.

Для нумерованного списка применяется значение decimal для вывода стандартных арабских цифр (1, 2, 3…)

Все значения данного тега вы можете найти на сайте-учебнике по HTML.

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

Именно его мы и будем использовать в первом варианте (их будет 2) для оформления ненумерованного списка, а сейчас перейдем к оформлению нумерованного.

Способ 1

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

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

«>

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

«>

На изображении моей верстки для списка вы видите, что номер не выводится. Цифры отображаются в стилях с помощью свойства list-style-type: decimal.

Придется заменить данное свойство на list-style-image. Тогда вместо цифр будут иконки, но вся загвоздка в том, что если мы пропишем данное свойство к общему тегу li, то будет отображаться одна и та же иконка для всех пунктов, а нам же необходимо своя иконка с цифрой на каждый пункт?

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

В первой строке кода к тегу li добавлен псевдокласс first-child, который обозначает первый номер. Далее к каждому следующему тегу добавлено свойство nth-child(An), где A — номер пункта в списке.

Таким образом нужно добавить в данный код все остальные номера пунктов и к каждому назначить свою уникальную иконку. Если в своих материалах вы иногда использовали 20 нумерованных пунктов в списках, то придется добавить минимум 20 раз псевдокласс nth-child(An). То есть последним псевдоклассом в стилях у вас будет nth-child(20n).

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

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

  1. Находите в файле стилей строки, отвечающие за оформление нумерованного списка. Необходимо найти теги ol li;
  2. Дописываете в него псевдокласс first-child, как показано в коде выше. Копируете один раз, изменяете данное свойство на nth-child(An) и копируете то количество раз, скольким номерам необходимо назначить свою иконку. Затем проставляете номера для пунктов;
  3. К каждому номеру прописываете свойство list-style-image (см. выше) со своей уникальной иконкой.

После этого все должно работать, но имеется один момент. Иконки могут располагаться сильно далеко от пунктов или же накладываться. Тогда придется вам поработать с выравниванием и отступами иконок цифр или самого текста пунктов.

Теперь перейдем ко второму способу, который стоит у меня.

Способ 2

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

Будем использовать псевдоэлемент before, который выводит определенное содержимое перед элементом (в нашем случае пункт списка).

«>

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

Реализация похожа с предыдущей:

  1. Находим стили для общего тега таблицы стилей нумерованного списка (тег ol) и прописываем к нему свойства:
  2. Для тега каждого пункта внутри общей таблицы стилей (тег ol li) прописываем свойство для размещение нумерации возле самих пунктов — position: relative;
  3. Последним шагом дописываем псевдоэлемент before (смотрите пример ниже) для тега ol li и прописываем к нему следующие стили:

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

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

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

Вот эти 2 способа я сам протестировал и все получилось. Если у вас возникнут вопросы, то обращайтесь в комментариях, а сейчас переходим к ненумерованному (маркерованному) списку.

Оформление ненумерованного списка ul li

Долго говорить здесь не буду, так как принцип абсолютно тот же. Ранее рассмотренные способы работают и тут, только стоит прописывать их к тегам ul li, а не ol li.

Вы можете просто назначит свойство list-style-image:url(путь к иконке) вместо стандартных стилей list-style-type. Но тогда проследите, чтобы были прописан внешний левый отступ от краев сайта, так как без него иконки попросту могут не отобразиться, а быть где-то вне зоны области контентной части. Можно для начала взять экспериментальные отступы, которые я даю в пример ниже.

Если хотите к каждой строке назначит чередование иконок, то смотрите в п.2 выше, как реализовать это с помощью свойства nth-child(An). Можно также назначит нижние подчеркивания для каждого пункта в маркерованном списке и так далее.

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

В коде вы можете видеть, что имеется всего лишь один псевдокласс nth-child(2n) со значением 2. Это означает, что к каждому четному пункту у меня другая иконка. Если же изменить значение 2n на 2n+1, то другая иконка будет у нечетных пунктов. Более подробно узнайте о данном псевдоклассе здесь.

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

Переходим к последнему пункту сего материала.

Несколько разно-оформленных списков на одной странице

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

Если мы назначим общие стили, то одно оформление будет назначаться ко всем спискам. Ну, а допустим, что нам нужно разместить 2 списка, но, чтобы у одного были иконки чек-боксов, а у другого иконки в виде полноценных картинок. Как такое реализовать?

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

«>

Затем в файл стилей прописал отличные стили от общих для всех списков.

Как видим, то просто необходимо скопировать стили для общего оформления списков, затем в скопированном варианте дописать название того ID, который добавили к тегу ul или ol, и изменить стили, чтобы оформление различалось.

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

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

Итак, друзья! Данный материал можно заканчивать. Я не пытался вас научить премудростям CSS. Целью было лишь показать варианты индивидуального оформления списков, так как с этим имееются сложности и я сам когда-то помучился.

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

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

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

Все. Пока.

С уважением, Константин Хмелев!

Ul li

kostyakhmelev.ru

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

  • Содержание:
  • 1. Маркированный список <ul>
  • 2. Нумерованный список <ol>
  • 3. Список определений <dl>
  • 4. Вложенный список
  • 5. Многоуровневый нумерованный список

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

Маркированный список представляет собой неупорядоченный список (от англ. Unordered List). Создаётся с помощью парного тега <ul></ul>. В качестве маркера элемента списка выступает метка, например, закрашенный кружок.

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

ul {padding-left: 40px; margin-top: 1em; margin-bottom: 1em;}

Каждый элемент списка создаётся с помощью парного тега <li></li> (от англ. List Item).

Для тега <ul> доступны ‎глобальные атрибуты.

<ul>   <li>Microsoft</li>   <li>Google</li>   <li>Apple</li>   <li>IBM</li>  </ul>
unordered list
Рис. 1. Маркированный список

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

Нумерованный список создаётся с помощью парного тега <ol></ol>. Каждый пункт списка также создаётся с помощью элемента <li>. Браузер нумерует элементы по порядку автоматически и если удалить один или несколько элементов такого списка, то остальные номера будут автоматически пересчитаны.

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

ol {padding-left: 40px; margin-top: 1em; margin-bottom: 1em;}

Для тега <li> доступен атрибут value, который позволяет изменить номер по умолчанию для выбранного элемента списка. Например, если для первого пункта списка задать <li value="10">, то остальная нумерация будет пересчитана относительно нового значения.

Для тега <ol> доступны следующие атрибуты:

Таблица 1. Атрибуты тега <ol>
Атрибут Описание, принимаемое значение
reversed Атрибут reversed задает отображение списка в обратном порядке (например, 9, 8, 7…).
start Атрибут start задает начальное значение, от которого пойдет отсчет нумерации, например, конструкция <ol start="10"> первому пункту присвоит порядковый номер «10». Также можно одновременно задавать тип нумерации, например, <ol type="I" 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).
<ol>   <li>Microsoft</li>   <li>Google</li>   <li>Apple</li>   <li>IBM</li>  </ol>
ordered list
Рис. 2. Нумерованный список

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

Списки определений создаются с помощью тега <dl></dl>. Для добавления термина применяется тег <dt></dt>, а для вставки определения — тег <dd></dd>.

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

dl {margin-top: 1em; margin-bottom: 1em;}

Для тегов <dl>, <dt> и <dd> доступны ‎глобальные атрибуты.

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

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

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

<ul>   <li>Пункт 1.</li>   <li>Пункт 2.   <ul>   <li>Подпункт 2.1.</li>   <li>Подпункт 2.2.    <ul>   <li>Подпункт 2.2.1.</li>   <li>Подпункт 2.2.2.</li>   </ul>   </li>    <li>Подпункт 2.3.</li>   </ul>   </li>   <li>Пункт 3.</li>  </ul>
ul ul ul
Рис. 4. Вложенный список

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

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

<ol>   <li>пункт</li> <!-1.->   <li>пункт    <ol>   <li>пункт</li> <!-2.1.->   <li>пункт</li> <!-2.2.->   <li>пункт   <ol>   <li>пункт</li> <!-2.3.1.->   <li>пункт</li> <!-2.3.2.->   <li>пункт</li> <!-2.3.3.->    </ol>   </li> <!-2.3.->   <li>пункт</li> <!-2.4.->    </ol>   </li> <!-2.->   <li>пункт</li> <!-3.->    <li>пункт</li> <!-4.->   </ol>

Такая разметка по умолчанию создаст для каждого вложенного списка новую нумерацию, начинающуюся с единицы. Чтобы сделать вложенную нумерацию, нужно использовать следующие свойства:
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,".") ". ";   }
numeric list
Рис. 5. Многоуровневый нумерованный список

html5book.ru

Маркированные HTML списки — теги ul и li

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

   &lt;ul&gt;   &lt;li&gt;1 элемент маркированного списка&lt;/li&gt;   &lt;li&gt;2 элемент маркированного списка&lt;/li&gt;   &lt;li&gt;3 элемент маркированного списка&lt;/li&gt;   &lt;/ul&gt;
  • 1 элемент маркированного списка
  • 2 элемент маркированного списка
  • 3 элемент маркированного списка

По умолчанию внешний вид маркера представляется закрашенным кружком. Однако, можно изменить его внешний вид, применив атрибут type, который имеет следующие значения: disc, circle, square. Значение disc (которое определяет внешний вид маркера в виде закрашенного кружка) применяется по умолчанию. То есть если атрибут type не прописан, то внешний вид маркера будет выглядеть как закрашенный кружок. Если дополнить данными атрибутами тег ul, то получим следующие варианты:

   &lt;ul&gt;   &lt;li type=&quot;disc&quot;&gt;1 элемент маркированного списка&lt;/li&gt;   &lt;li type=&quot;disc&quot;&gt;2 элемент маркированного списка&lt;/li&gt;   &lt;li type=&quot;disc&quot;&gt;3 элемент маркированного списка&lt;/li&gt;   &lt;/ul&gt;
  • 1 элемент маркированного списка
  • 2 элемент маркированного списка
  • 3 элемент маркированного списка
   &lt;ul&gt;   &lt;li type=&quot;circle&quot;&gt;1 элемент маркированного списка&lt;/li&gt;   &lt;li type=&quot;circle&quot;&gt;2 элемент маркированного списка&lt;/li&gt;   &lt;li type=&quot;circle&quot;&gt;3 элемент маркированного списка&lt;/li&gt;   &lt;/ul&gt;
  • 1 элемент маркированного списка
  • 2 элемент маркированного списка
  • 3 элемент маркированного списка
   &lt;ul&gt;   &lt;li type=&quot;square&quot;&gt;1 элемент маркированного списка&lt;/li&gt;   &lt;li type=&quot;square&quot;&gt;2 элемент маркированного списка&lt;/li&gt;   &lt;li type=&quot;square&quot;&gt;3 элемент маркированного списка&lt;/li&gt;   &lt;/ul&gt;
  • 1 элемент маркированного списка
  • 2 элемент маркированного списка
  • 3 элемент маркированного списка

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

   &lt;ul&gt;   &lt;li type=&quot;disc&quot;&gt;1 элемент маркированного списка&lt;/li&gt;   &lt;li type=&quot;circle&quot;&gt;2 элемент маркированного списка&lt;/li&gt;   &lt;li type=&quot;square&quot;&gt;3 элемент маркированного списка&lt;/li&gt;   &lt;/ul&gt;
  • 1 элемент маркированного списка
  • 2 элемент маркированного списка
  • 3 элемент маркированного списка

Нумерованные HTML списки — теги ol и li

Теперь посмотрим, как образуется нумерованный список с помощью тегов ol (блочный и парный тег по аналогии с ul). В качестве тега, определяющего элементы нумерованного списка html, здесь тоже выступает тег li. Нумерованный список — совокупность пронумерованных элементов. Тип нумерации определяется атрибутом type, который может принимать следующие значения:

  • A — заглавные латинские буквы;
  • a — строчные латинские буквы;
  • I — заглавные римские цифры;
  • i — строчные римские цифры;
  • 1 — арабские цифры
   &lt;ol&gt;   &lt;li type=&quot;A&quot;&gt;1 элемент нумерованного списка&lt;/li&gt;   &lt;li type=&quot;A&quot;&gt;2 элемент нумерованного списка&lt;/li&gt;   &lt;li type=&quot;A&quot;&gt;3 элемент нумерованного списка&lt;/li&gt;   &lt;/ol&gt;
  1. 1 элемент нумерованного списка
  2. 2 элемент нумерованного списка
  3. 3 элемент нумерованного списка
   &lt;ol&gt;   &lt;li type=&quot;a&quot;&gt;1 элемент нумерованного списка&lt;/li&gt;   &lt;li type=&quot;a&quot;&gt;2 элемент нумерованного списка&lt;/li&gt;   &lt;li type=&quot;a&quot;&gt;3 элемент нумерованного списка&lt;/li&gt;   &lt;/ol&gt;
  1. 1 элемент нумерованного списка
  2. 2 элемент нумерованного списка
  3. 3 элемент нумерованного списка
   &lt;ol&gt;   &lt;li type=&quot;I&quot;&gt;1 элемент нумерованного списка&lt;/li&gt;   &lt;li type=&quot;I&quot;&gt;2 элемент нумерованного списка&lt;/li&gt;   &lt;li type=&quot;I&quot;&gt;3 элемент нумерованного списка&lt;/li&gt;   &lt;/ol&gt;
  1. 1 элемент нумерованного списка
  2. 2 элемент нумерованного списка
  3. 3 элемент нумерованного списка
   &lt;ol&gt;   &lt;li type=&quot;i&quot;&gt;1 элемент нумерованного списка&lt;/li&gt;   &lt;li type=&quot;i&quot;&gt;2 элемент нумерованного списка&lt;/li&gt;   &lt;li type=&quot;i&quot;&gt;3 элемент нумерованного списка&lt;/li&gt;   &lt;/ol&gt;
  1. 1 элемент нумерованного списка
  2. 2 элемент нумерованного списка
  3. 3 элемент нумерованного списка
   &lt;ol&gt;   &lt;li type=&quot;1&quot;&gt;1 элемент нумерованного списка&lt;/li&gt;   &lt;li type=&quot;1&quot;&gt;2 элемент нумерованного списка&lt;/li&gt;   &lt;li type=&quot;1&quot;&gt;3 элемент нумерованного списка&lt;/li&gt;   &lt;/ol&gt;
  1. 1 элемент нумерованного списка
  2. 2 элемент нумерованного списка
  3. 3 элемент нумерованного списка

Также можно обеспечить нумерованный список, где нумерация элементов осуществляется в обратном порядке, например: 3, 2, 1. Это осуществляется с помощью атрибута reserve тега ol.

   &lt;ol reversed&gt;   &lt;li type=&quot;1&quot;&gt;1 элемент нумерованного списка&lt;/li&gt;   &lt;li type=&quot;1&quot;&gt;2 элемент нумерованного списка&lt;/li&gt;   &lt;li type=&quot;1&quot;&gt;3 элемент нумерованного списка&lt;/li&gt;   &lt;/ol&gt;
  1. 1 элемент нумерованного списка
  2. 2 элемент нумерованного списка
  3. 3 элемент нумерованного списка

Существует также возможность начать маркированный список не с 1, а с любого другого числа. Для этого можно воспользоваться атрибутом start, причем совершенно не важно, какое значение атрибута type установлено. Посмотрите пример использования атрибута name в совокупности с различными значениями атрибута type (1 и I):

   &lt;ol start=&quot;5&quot;&gt;   &lt;li type=&quot;1&quot;&gt;1 элемент нумерованного списка&lt;/li&gt;   &lt;li type=&quot;1&quot;&gt;2 элемент нумерованного списка&lt;/li&gt;   &lt;li type=&quot;1&quot;&gt;3 элемент нумерованного списка&lt;/li&gt;   &lt;/ol&gt;
  1. 1 элемент нумерованного списка
  2. 2 элемент нумерованного списка
  3. 3 элемент нумерованного списка
   &lt;ol start=&quot;4&quot;&gt;   &lt;li type=&quot;I&quot;&gt;1 элемент нумерованного списка&lt;/li&gt;   &lt;li type=&quot;I&quot;&gt;2 элемент нумерованного списка&lt;/li&gt;   &lt;li type=&quot;I&quot;&gt;3 элемент нумерованного списка&lt;/li&gt;   &lt;/ol&gt;
  1. 1 элемент нумерованного списка
  2. 2 элемент нумерованного списка
  3. 3 элемент нумерованного списка

goldbusinessnet.com

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

Такой список представляет собой перечень «пронумерованный» каким-либо образом. Это могут быть арабские цифры, цифры римского алфавита или буквы.

Чтобы указать браузеру, что список будет нумерованным, используются теги <ol></ol>. Весь список располагается между этими тегами и каждый его пункт задается тегами <li></li>.

Пример кода для нумерованного списка: Результат: Как видите, по умолчанию нумерация ведется арабскими цифрами. Это можно изменить с помощью параметра type:

type=»A» — нумерация заглавными латинскими буквами (A, B, C).

type=»a» — нумерация прописными латинскими буквами (a, b, c).

type=»I» — нумерация большими римскими цифрами (I, II, III) .

type=»i» — нумерация маленькими римскими цифрами (i, ii, iii).

Пример кода с римскими цифрами: Результат: Если нам нужно начать нумерацию не с единицы, то следует использовать параметр start, в качестве значения которого указывается число, с которого будет начинаться список (если нумерация задается с помощью букв, то это число будет указывать на позицию в алфавите).

Пример кода: Результат: У тега <li&gt можно задать параметр value, который позволяет изменить номер данного элемента списка. При этом изменяется нумерация и всех последующих элементов.

Пример кода: Результат:

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

В маркированном списке вместо букв и цифр используются маркеры. Чтобы указать браузеру, что список будет маркированным, используются теги <ul></ul>. Весь список располагается между этими тегами и каждый его пункт задается тегами <li></li>.

Пример кода для маркированного списка: Результат: По умолчанию маркер отображается в виде черного кружочка. Это можно изменить с помощью параметра type:

type=»disc» — закрашенный кружочек.

type=»circle» — пустой кружочек.

type=»square» — закрашенный квадратик.

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

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

Таки списки используются в словарях. Каждый пункт состоит из двух частей: термин и его определение. Чтобы указать браузеру, что будет список определений, используются теги <dl></dl>. Каждый термин заключается в теги <dt></dt>, а их определения — в теги <dd></dd>.

Пример кода списка определений: Результат:

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

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

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

www.site-do.ru

Нумерованные списки. Теги <ol> и <li>,

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

Нумерованный список формируется парным тегом <ol> (от англ. ordered list). Сам элемент ‘ol’ используется, как контейнер для пунктов списка, которые формируются парными тегами <li> и располагаются друг за другом.

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

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

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

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

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

 <!DOCTYPE html> <html> <head> 	<meta charset="utf-8">	 	<title>Нумерованный список</title> </head> <body> 	<em style="color: green">Весенние месяцы по порядку:</em> 	 	<ol start="3" title="Весенние месяцы"> 		<li>март</li> 		<li>апрель</li> 		<li>май</li> 	</ol> 	 	<em style="color: red">Летние месяцы в обратном порядке:</em> 	 	<!-- Перечисляем в обратном порядке. В IE не работает! --> 	<ol start="8" reversed> 		<li>август</li> 		<li>июль</li> 		<li>июнь</li> 	</ol> </body> </html> 

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

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

Маркированные списки. Теги <ul> и <li>,

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

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

Код, содержащий элемент ‘ul’, показан в примере 2.11.

 <!DOCTYPE html> <html> <head> 	<meta charset="utf-8">	 	<title>Маркированный список</title> </head> <body> 	<em style="color: green">Весенние месяцы:</em> 	<!-- Задаем фон, чтобы визуально увидеть область,  	занимаемую списком, как блочным элементом --> 	<ul style="background-color: yellow"> 		<li>март</li> 		<li>апрель</li> 		<li>май</li> 	</ul> </body> </html> 

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

Списки определений. Теги <dl>, <dt>, <dd>

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

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

 <!DOCTYPE html> <html> <head> 	<meta charset="utf-8">	 	<title>Список определений</title> </head> <body> 		 	<dl title="Список из двух определений"> 		<dt>HTML</dt> 			<dd>Стандартный язык гипертекстовой разметки веб-документов, <br> 			который повсеместно используется во Всемирной паутине.</dd> 		 		<dt>CSS</dt> 			<dd>Формальный язык описания внешнего вида документа, <br> 			написанного с использованием языка разметки.</dd> 	</dl> </body> </html> 

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

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

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

 <!DOCTYPE html> <html> <head> 	<meta charset="utf-8">	 	<title>Вложенные списки</title> </head> <body> 	<!-- Пусть будет нумерованный список -->	 	<ol> 		<!-- В каждый пункт помещаем новый список --> 		<li>Три сорта яблок: 			<ul> 				<li>Антоновка,</li> 				<li>Штрефель,</li> 				<li>Кубань.</li> 			</ul> 		</li> 		<!-- А сюда поместим нумерованный список --> 		<li>Три сорта груш: 			<ol> 				<li>Чижовская,</li> 				<li>Вильямс,</li> 				<li>Дюшес.</li> 			</ol> 		</li> 	</ol> </body> </html>	 

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

Как видим, создавать вложенные списки совсем не трудно. Для этого нужно внимательно между открывающим тегом <li> и закрывающим тегом </li> для нумерованных и маркированных списков расположить вложенный список требуемого вида. Что касается списков определений, то вложенный список следует располагать между открывающим тегом <dd> и закрывающим тегом </dd>. Это может понадобиться, например, если нужно дать термину несколько определений.

belarusweb.net


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Adblock
detector