Маркированный список css свой маркер. CSS Design: Укрощение списков
Приветствую вас на своем блоге. Сегодня я хотел бы затронуть тему, как через css у маркированных пунктов списка (ul li) убрать маркеры, потому что они зачастую не нужны и только мешают оформлять сайт.
Убираем маркеры по умолчанию
Иногда нужно просто убрать их. Например, при оформлении меню или чего-то другого. За отображение маркеров отвечает свойство list-style-type или сокращенное list-style . Значением по умолчанию выступает circle , то есть черный закрашенный кружочек. Чтобы убрать его, всего лишь нужно написать так:
Ul{
List-style-type: none;
}
Ul{
List-style: none;
}
Заметьте, что свойство записывается всему списку в общем, а не отдельным его пунктам. Это очень важно. Вышеприведенная запись убирает маркеры у всех списков на вашем сайте, но может быть так, что у вас будет несколько оформлений списков.
В таком случае справиться с их стилизацией помогут классы. Нужным спискам просто вешаете стилевой класс и оформляете их.
Как поставить свою картинку маркера
Да-да, css позволяет создать свой, гораздо более привлекательный маркер. Его можно задать также с помощью свойства list-style-image , либо упрощенно с помощью list-style . В значении в скобках прописывается путь к файлу, а перед ним нужно поставить ключевое слово url .
Маркированные списки позволяют разбить большой текст на отдельные блоки, каждый из которых начинается с маркера - обычно в его качестве выступает небольшая точка. Это привлекает внимание читателя к тексту и повышает его читабельность.
С элементом
-
связаны следующие особенности:
- в том месте, где встречается
-
, браузер автоматически добавляет перенос строки;
- у списка имеются отступы сверху и снизу;
- маркеры по умолчанию отображаются в виде закрашенного кружка;
- каждый элемент списка сдвигается вправо по отношению к основному тексту.
- disc - маркеры в виде закрашенного кружка;
- circle - маркеры в виде незакрашенного кружка;
- square - квадратные маркеры.
- Сепульки
- Сепулькарии
- Сепуление
- не получится, поэтому придётся действовать в обход. Для этого прячем маркеры списка с помощью свойства list-style со значением none и в тексте перед содержимым
-
добавляем свой собственный символ с помощью псевдоэлемента ::before
. В примере 2 в качестве такого маркера выступает треугольник.
Пример 2. Использование::before
Списки - Сепульки
- Сепулькарии
- Сепуление
Результат данного примера показан на рис. 2. Поскольку использование свойства list-style со значением none не убирает маркеры совсем, а только скрывает их от просмотра, то список получается смещённым вправо. Чтобы избавиться от этой особенности, в примере добавляется свойство text-indent с отрицательным значением. Его задача - переместить текст левее на один символ.
Рис. 2. Произвольные маркеры в списке
Символ не обязательно должен быть в шестнадцатеричном формате, его можно вставить и непосредственно в текст. Главное, сохранить документ в кодировке UTF-8 и чтобы редактор её поддерживал. Сами символы и их коды можно взять, например, из LibreOffice Writer (рис. 3).
Рис. 3. Выбор символа в LibreOffice
Список с рисованными маркерами
Стили позволяют установить в качестве маркера любое подходящее изображение через свойство list-style-image . В качестве значения используется относительный или абсолютный путь к графическому файлу, как показано в примере 3.
Пример 3. Использование изображения в качестве маркера
Списки - Сепульки
- Сепулькарии
- Сепуление
Рисунок лучше всего выбирать небольшого размера, чтобы не превращать элементы списка в подрисуночные подписи. На рис. 4 показан результат действия примера по использованию в качестве маркеров небольших картинок.
Рис. 4. Рисунок в качестве маркера
Применение list-style-image обладает некоторыми недостатками:
- рисунок нельзя сдвинуть вверх или вниз;
- в разных браузерах положение рисунка относительно текста может отличаться.
Этих недочётов можно избежать с помощью свойства background , оно устанавливает фоновое изображение. Для каждого элемента списка
-
мы убираем исходные маркеры и устанавливаем фоновую картинку без повторения. А чтобы текст не выводился поверх рисунка, смещаем его вправо через padding-left
(пример 4).
Пример 4. Использование background
Ul { margin-left: -1em; } li { list-style: none; background: url(images/bullet.png) no-repeat 0 2px; padding-left: 20px; }
Положение текста и маркера
Существует два способа размещения маркера относительно текста: маркер выносится за границу элементов списка или обтекается текстом (рис. 5).
inside outside Рис. 5. Размещение маркеров относительно текста
Свойство list-style-type устанавливает вид маркера. Вот таблица допустимых значений для этого свойства:
Значение Пример disc - Пункт списка
circle - Пункт списка
square - Пункт списка
decimal - Пункт списка
decimal-leading-zero - Пункт списка
lower-roman - Пункт списка
upper-roman - Пункт списка
lower-alpha - Пункт списка
upper-alpha - Пункт списка
georgian - Пункт списка
- Пункт списка
- Пункт списка
cjk-ideographic - Пункт списка
- Пункт списка
- Пункт списка
none - Пункт списка
В таблице я указал два весьма необычных свойства: georgian и cjk-ideographic . Эти свойства используются регионально. Есть ещё несколько похожих любопытных значений этого свойства, например armenian или hiragana , но все их перечислять нет смысла.
Теперь пример использования этого свойства:
Свойство list-style-type. - Первый пункт.
- Второй пункт.
- Третий пункт.
Обратите внимание, мы превратили нумерованный список
-
в маркированный.
- Первый пункт.
- Второй пункт.
- Третий пункт.
- Первый пункт.
- Второй пункт.
- Третий пункт.
-
, обрамлённого красной границей. Это может привести к неожиданным результатам, вот например обнулим внутренние отступы
-
.
- Первый пункт.
- Второй пункт.
- Третий пункт.
-
. Это бы решило данную проблему. Вот для этого и существует свойство list-style-position
.
Свойство list-style-position устанавливает положение маркера относительно блока
-
. Это свойство имеет два значения:
По умолчания используется значение outside .
Применим это свойство к нашему примеру и поместим маркеры в блок
-
, установив этому свойству значение inside
.
Свойство list-style-position. - Первый пункт.
- Второй пункт.
- Третий пункт.
Вот что мы получили:
Рисунок 5. Свойство list-style-position.Теперь маркеры списка вложены в блок
-
.
Свойство list-style
Свойство list-style является сокращённой формой, позволяющей использовать значения всех трёх предыдущих свойств.
Пример: сделаем картинку маркером и поместим маркер внутрь блока пункта списка.
Свойство list-style. - Первый пункт.
- Второй пункт.
- Третий пункт.
Вот результат:
Рисунок 6. Свойство list-style.Мы в одном свойстве list-style указали два значения: положение маркера и путь графичекого файла маркера.
Свойство list-style используют чаще всего, даже для задания одного значения. Оно короткое, его легко написать.
Рецепты CSS по теме
- Как сделать ниспадающее меню на CSS , сложный пример с тенями.
CSS свойства списка позволяют вам:
- Устанавливать различные маркеры пунктов списка для упорядоченных списков
- Устанавливать различные маркеры пунктов списка для неупорядоченных списков
- Устанавливать изображение в качестве маркера пункта списка
Список
В HTML существует два типа списков:
- неупорядоченные списки - пункты списка помечаются маркерами
- упорядоченные списки - пункты списка помечаются числами или буквами
С помощью CSS списки могут оформлены лучшим образом, и изображения могут использоваться в качестве маркеров для пунктов списка.
Различные Маркеры Пунктов Списка
Тип маркера для пункта списка указывается с помощью свойства list-style-type:
Некоторые значения свойства list-style-type для неупорядоченных списков, и некоторые - для упорядоченных.
Изображение в качестве Маркера Пункта Списка
Чтобы указать изображение в качестве маркера пункта списка, используйте свойство list-style-image:
Пример выше не отображается одинаково вовсех браузерах. IE и Opera будут отображать маркер-изображение чуть выше, чем Firefox, Chrome, и Safari.
Если вы хотите, чтобы изображение-маркер размещался одинаково во всех браузерах, кросс-браузерное решение объяснено ниже.
Кросс-браузерное Решение
Следующий пример отрисовывает изображение-маркер одинаково во всех браузерах:
Объяснение примера:
- Для ul:
- Установка list-style-type в none - чтобы удалить маркер пункта списка
- Установка свойств padding и margin в 0px (для кросс-браузерной совместимости)
- Для li:
- Установка адреса URL для изображения, и значения no-repeat (чтобы изображение выводилось только один раз)
- Позиционирование изображения в желаемом месте (влево на 0px и вниз на 5px)
- Установка левого отступа для текста в списке
Список - Стенографическое (Сокращенное) свойство
Также можно указать все свойства списка в одном - одиночном свойстве. Оно называется стенографическим (или сокращенным) свойством.
Стенографическое свойство для списков - это свойство list-style:
При использовании стенографического свойства порядок значений таков:
- list-style-type
- list-style-position (объяснение смотрите ниже - в таблице свойств CSS)
- list-style-image
Не важно, если одно из значений выше пропущено, главное чтобы все остальные значения шли по указанному порядку.
Мы с Вами уже знакомились с таким немаловажным элементом как список и действительно хорошее средство для структуризации данных. Однако списки организованные одними средствами HTML весьма убоги в плане дизайна и не радуют глаз человека.
В этой главе мы немного поколдуем над списками с помощью свойств CSS. Так мы будем говорить о стиле списка, то для обучения Вам понадобится базовая информация о тегах:
Ну а если в голове и так свежо тогда начнем!
Вид маркера в списке.
Если Вы помните, то в чистом HTML вид маркера в списке определял атрибут type и одно из его возможных значений, в CSS данную задачу берёт на себя свойство: list-style-type которое, в свою очередь, тоже имеет свои стандартные значения определяющие вид маркера как всего списка сразу, так и его отдельного "пункта".
Значения list-style-type:
- disc
- Диск. (по умолчанию для
- circle - Полый круг.
- square - Квадрат.
- decimal
- Арабские цифры. (по умолчанию для
- lower-roman - Строчные римские цифры.
- lower-alpha - Строчные буквы.
- upper-roman - Заглавные римские цифры.
- upper-alpha - Заглавные буквы.
- none - Маркер отсутствует.
Вид маркера в списке
- Пункт 1.
- Пункт 2.
- Пункт 3 (особенный).
- Пункт 1.
- Пункт 2.
- Пункт 3.
Пользовательский маркер рисунок.
Наиболее интересным CSS инструментом для работы со стилем списка является, на мой взгляд, возможность вместо стандартных "скучных" маркеров описанных выше использовать свои собственные нестандартные изображения - небольшие рисунки, вписывающиеся в общий дизайн Вашего сайта.
Эту задачу выполняет свойство list-style-image которое определяет в качестве маркера списка некое графическое изображение с указанием пути к нему.
Значений данного свойства всего два:
- none - Отменяет графическое изображение маркера.
- url - Путь к файлу с рисунком маркера.
Путь к рисунку после url указывается в круглых скобках.
Такая запись будет говорить о том, что рядом с документом есть папка graphics в которой лежит файлик-рисунок: " " - под названьем marker.gif
Теперь попрубуем сделать так, что бы каждый пункт нашего списока был промаркерован этим рисунком. Смотрим пример:
Нестандартный маркер-рисунок
- Первый любимый пункт.
- Второй любимый пункт.
- И не менее любимый третий пункт.
Стиль обтекания маркера списком.
Свойство list-style-position указывает браузеру на то, как следует отображать текст в списке относительно его маркеров. По умолчанию маркеры находятся в стороне от текста списка, но можно сделать так, что они будут обтекаться текстом.
Возможных значений свойства list-style-position всего два:
- outside - Маркер находится в стороне от списка.(по умолчанию)
- inside - Маркер обтекается текстом.
Пример для наглядности:
Обтекание маркера текстом
Здесь маркер обтекается текстом:
А здесь нет:
- Пункт, в котором говорится о том, что хорошо бы было сделать, что-то там, где это что-то еще не сделано.
- Пункт, в котором говорится о том, что неплохо бы было сделать, нечто там, где это нечто еще не сделано.
list-style
Базовое свойство list-style используется, когда стилю списка необходимо одновременно присвоить несколько значений. Может иметь от одного до трёх значений из свойств применяемых к стилю списка, в любой последовательности через пробел.
Все три свойства и их возможные значения мы рассмотрели выше, поэтому повторятся не буду, а просто выложу внутри страничную навигацию:
Если в голове остались какие то пробелы можете вернуться и перечитать.
Стиль списка
- - Этот список использует в качестве маркера рисунок.
- - Текст этого списка обтекает маркер.
Списки наряду с заголовками, выделенным текстом и картинками, являются элементами, которые приковывают взгляд посетителя при беглом просмотре страницы. Умелое и ненавязчивое размещение таковых элементов залог того, что посетитель окунётся в чтение Вашего документа более глубоко.
Так как списки являются великолепным инструментом для структуризации данных, а свойства CSS позволяют создать практически любой их дизайн, используйте списки, помимо их основного назначения, в качестве "меню" - навигации по сайту, где каждый пункт является ссылкой на ту или иную страницу Вашего сайта.
Рекомендуем также
Форматируем список. Вот что мы получим:
Рисунок 4. Форматируем блок- .
Теперь маркеры списка вышли за пределы контейнера
-
. Таким образом маркеры могут выйти и за пределы контейнера статьи, к которой принадлежит список, что нарушит внешний вид сайта.
Лучше бы поместить их внутрь контейнера
Рисунок 1. Свойство list-style-type.
Обязательно обратите внимание на значение none , это значение убирает маркеры вообще. Это свойство часто используется для форматирования списков при помощи CSS.
Свойство list-style-type достаточно простое, как и остальные свойства по работе со списками.
Свойство list-style-image устанавливает символом маркера графический файл.
Свойство list-style-image..gif"); } Вот результат работы этого кода:
Рисунок 2. Свойство list-style-image.Мы видим, что теперь маркеры списка отмечены графическим файлом .
Свойство list-style-position
Перед тем, как приступить к изучению этого свойства, более детально изучим модель форматирования элемента
-
.
Форматируем список. Вот что мы видим:
Рисунок 3. Форматируем блок- .
Тут важно обратить внимание на то, что маркеры списка выходят за границу блока элемента
На рис.1 показан результат примера, иллюстрирующий приведённые особенности маркированного списка.
Рис. 1. Вид маркированного списка
Вид маркера
Маркеры могут принимать один из трёх видов: закрашенный кружок (по умолчанию), незакрашенный кружок и квадрат. Для выбора типа маркера используется свойство list-style-type или универсальное list-style (пример 1). Применяются следующие значения:
Пример 1. Изменение вида маркера
В примере показано создание маркированного списка, где в качестве значка маркера используется небольшой однотонный квадрат. Хотя количество значений ограничено тремя, это не значит, что в нашем распоряжении всего три вида маркера. Существует множество спецсимволов, которые с успехом могут выступать в качестве значка маркера. «Прикрутить» их непосредственно к