Как оформить свой стиль маркированного списка html. Примеры стильного оформление ul li списков CSS. Использование before и first-child в комплексе

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

Если проанализировать какой-либо сайт, то можно обнаружить тот факт, что в контенте очень часто присутствуют списки разного рода: меню, список товаров и т. д. В HTML-коде за нумерованный список отвечает тег , а за маркированный – .

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

Чтобы устранить этот негативный эффект надо отменить вывод маркера, воспользовавшись свойством list-style :

ol, ul { list- style: none; }

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

Маркеры через картинки

Наиболее распространенный и простой способ указать для списка маркер – это воспользоваться бекграундной картинкой (свойство background). Метод основывается на указании в таблице стилей фонового рисунка для элементов списка, а также внутренний отступ (свойство padding), который зарезервирует место для нового маркера. Ниже представлен пример кода:

ul { list- style: none; } li{ background: url(путь- к- картинке) no- repeat; padding- left: 20px; }

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

Главная положительная сторона этого метода заключается в 100%-ной кроссбраузерности, но, не смотря на это, есть маленький недостаток. Использование картинки – это дополнительное обращение к серверу.

Маркеры с помощью before

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

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

Ниже представлен пример кода, который формирует маркированный список с коротким тире:

li{ this. innerHTML = "-" + this. innerHTML) /*хак для IE*/ } li: before{ content: "\201 3" ; }

На практике получим такую картину:

Напоминаю о том, что в реальных условиях хаки подключаются условными комментариями .

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

Использование insertAdjacentHTML

Вышеупомянутый способ не всегда корректно отрабатывает в легендарном IE (не смотря на хак). Точнее, «костыли» для этого браузера не до конца доработанные. Более действенным является метод, основанный на insertAdjacentHTML , ниже представлен код этого метода:

li{ //z-index: expression(runtimeStyle.zIndex = 1, insertAdjacentHTML("afterBegin", "-")); }

Маркеры, нарисованные CSS-свойствами

Некоторые квадратные маркеры можно нарисовать с использованием некоторых CSS-свойств. К примеру, квадрат с цветной заливкой рисуется через свойство background-color , а квадратик в виде рамки – border (кстати говоря, квадрат с заливкой можно нарисовать и таким способом). Пример записи в CSS-файле:

li{ //z-index: expression(runtimeStyle.zIndex = 1, this. innerHTML = "

" + this. innerHTML) /* хак для ие6 и 7 */ } li: before, . listMarkerBackColor{ background- color: #539127; width: 7px; height: 7px; content: "" ; float: left; margin: 6px 6px 0 0 ; overflow: hidden; } html . listMarkerBackColor{ margin- right: 1px; /* исправляем маленткий косяк в IE6 */ }

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

Использование before и first-child в комплексе

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

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

HTML

< ul> < li>< a href= "#" > Главная < li>< a href= "#" > Блог < li>< a href= "#" > CSS < li> Валидный код при использовании target= "_blank"

li: before{ content: "\21 92" ; } li: first- child: before{ content: "" ; }

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

В каких браузерах работает?

6.0+ 4.0+ 9.5+ 3.0+ 3.0+ - -

Выводы

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

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

Обычный вид маркера

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

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

HTML

<a href="/shablony-stranic-html-css-infusion-odnostranichnyi-shablon-portfolio.html">HTML страница</a>

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

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

Убирается маркер у списка с помощью свойства list-style-typet и присваивая ему значение none . Это является самым популярным вариантом по удалению маркеров у списка. И для списка зададим то самое свойство.

Ul{ list-style-type: none; }

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

  • none - Удаляет маркеры у списка
  • circle - Маркер в виде круга
  • disc" - Маркер в виде заполненного круга. Значение по умолчанию
  • square - Маркер в виде квадрата
  • armenian - Армянская нумерация
  • decimal - Маркер в виде цифры
  • decimal-leading-zero - Цифры с «0» перед началом (01, 02, 03, и т.д.)
  • georgian - Грузинская нумерация
  • lower-alpha - (а, Ь, с, d, е, и т.д.)
  • lower-greek - (alpha, beta, gamma, и т.д.)
  • lower-latin - (a, b, с, d, e, и т.д.)
  • Iower-roman - (i, ii, iii, iv, v, и т.д.)
  • upper-alpha - (А, В, С, D, Е, и т.д.)
  • upper-latin - (А, В, С, D, Е, и т.д.)
  • upper-roman - (I, II, III, IV, V, и т.Д.)
  • inherit - Значение должно быть унаследовано от элемента родителя

Это все вида маркеров для списков. Первые четыре вида самые распространённые, остальные виды применяются достаточно редко.

Ну и для примера давайте выберем и зададим маркер в виде больших римских цифр. Делается это просто: в место значения none ставим название нашего маркера upper-roman .

Ul{ list-style-type: upper-roman; }

Если обновить страницу, то у списков в виде маркеров появились римские большие цифры. Вот таким способом можно менять внешний вид маркеров списков, задавая нужный вид через свойство list-style-type .

Маркер в виде изображения

Второй, достаточно важный момент, и часто используемый маркер - это изображение в виде маркера. Часто нужно использовать маркер в виде красивой картинки и обычные варианты маркеров представленных CSS не подходят. Для этого используется изображения. И делается это с помощью специального свойства, которое называется list-style-image . Это будет указывать браузеру, что маркером у нас будет картинка.

Возьмите любую картинку в интернете размером (15px x 15px) , которую планируется использовать в качестве маркера и поместите ее в ранее уже созданную папку с картинками images . После этого, остается свойству list-style-image указать путь к картинке и браузер вместо маркера подставит картинку.

В CSS путь указывается с помощью ключевого слова url() . В скобках указываем путь к картинке ../images/Название картинки.jpg , относительно таблицы стилей.

То есть, что значит относительно таблицы стилей? Наша таблица стилей - файл style.css , лежит в каталоге CSS , а картинка лежит в каталоге images . Это значит, что браузеру нужно указать, что ему сначала нужно выйти из каталога CSS , это делается так: ../ , а затем зайти в в каталог с картинкой images и уже затем найти нужную картинку.

Ul{ list-style-image: url(../images/Название картинки маркера.jpg); }

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

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

  • .

    Ul li{ border: 2px solid #ff0000; }

    Теперь, если вы посмотрите, то Ваш маркер-картинка находится за пределами элемента списка, той самой рамки, что мы создали выше. Поэтому бывают моменты, когда нужно чтобы маркер находился внутри элемента списка. Для этого и существует свойство list-style-position , в которое изначально установлено значение outside , то есть устанавливать маркеры за пределами элемента.

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

    Ul{ list-style-image: url(../images/Название картинки маркера.jpg); list-style-position:inside; } ul li{ border: 2px solid #ff0000; }

    Вот таким образом работают три этих свойства. Существует и сокращенный вариант записи, который объединяет все эти свойства.

    То есть, указывается свойство list-style и затем, по порядку, значения типа маркера, позиции маркера и, если нужно путь к картинке, которая и будет маркером. И, картина у нас получится следующая:

    Ul{ list-style: inside url(../images/Название картинки маркера.jpg); }

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

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

    Сегодня нет практически ни одного сайта, где бы не использовались HTML списки (

      представляет упорядоченный список,
        - неупорядоченный список). В этом уроке я покажу вам 8 отличных способов, позволяющих сделать обычные скучные html-списки привлекательными. Мы лишь добавим несколько простых CSS техник и наши списки не только приобретут потрясающий вид, но и несколько дополнительных возможностей.

        А теперь посмотрите демо-версию, чтобы увидеть, что же мы с вами будем создавать.

        Выглядят гораздо лучше, не так ли? И вы тоже можете создать такие списки при помощи простого CSS кода. Хотите знать как? Читайте!

        Список #1: Простая система навигации

        Чаще всего списки используются при создании навигационного меню. Код данного HTML/CSS примера позволяет создать простую, даже немного скромную, но привлекательную систему навигации.

        • Home
        • Blog
        • About
        • Contact

        /* LIST #1 */ #list1 { } #list1 ul { list-style:none; text-align:center; border-top:1px solid #eee; border-bottom:1px solid #eee; padding:10px 0; } #list1 ul li { display:inline; text-transform:uppercase; padding:0 10px; letter-spacing:10px; } #list1 ul li a { text-decoration:none; color:#eee; } #list1 ul li a:hover { text-decoration:underline; }

        Список #2: Использование различного шрифта при нумерации

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

          The Netherlands is a country in ...

          The United States of America is a federal constitutional ...

          The Philippines officially known as the Republic ...

          The United Kingdom of Great Britain and ...

        /* LIST #2 */ #list2 { width:320px; } #list2 ol { font-style:italic; font-family:Georgia, Times, serif; font-size:24px; color:#bfe1f1; } #list2 ol li { } #list2 ol li p { padding:8px; font-style:normal; font-family:Arial; font-size:13px; color:#eee; border-left: 1px solid #999; } #list2 ol li p em { display:block; }

        Список #3: Изображения-маркеры

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

        • Java
        • .NET

        /* LIST #3 */ #list3 { } #list3 ul { list-style-image: url("../images/arrow.png"); color:#eee; font-size:18px; } #list3 ul li { line-height:30px; }

        Список #4: iPhone-стиль

        Данный список взят из статьи the iPhone Contacts App, созданный при помощи CSS и jQuery. Так выглядят списки на iPhone. Очень привлекательно, не так ли? Хотите такой на свой сайт?

        • Toronto2004
        • Beijing2008
        • London2012
        • Rio de Janeiro2016

        /* LIST #4 */ #list4 { width:320px; font-family:Georgia, Times, serif; font-size:15px; } #list4 ul { list-style: none; } #list4 ul li { } #list4 ul li a { display:block; text-decoration:none; color:#000000; background-color:#FFFFFF; line-height:30px; border-bottom-style:solid; border-bottom-width:1px; border-bottom-color:#CCCCCC; padding-left:10px; cursor:pointer; } #list4 ul li a:hover { color:#FFFFFF; background-image:url(../images/hover.png); background-repeat:repeat-x; } #list4 ul li a strong { margin-right:10px; }

        Список #5: Вложенные списки

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

        1. Google
          1. Picasa
          2. Feedburner
          3. Youtube
        2. Microsoft
          1. Corel Corporation
          2. Zignals
          3. ByteTaxi
        3. Yahoo!
          1. Xoopit
          2. BuzzTracker
          3. MyBlogLog

        /* LIST #5 */ #list5 { color:#eee; } #list5 ol { font-size:18px; } #list5 ol li { } #list5 ol li ol { list-style-image: url("../images/nested.png"); padding:5px 0 5px 18px; font-size:15px; } #list5 ol li ol li { color:#bfe1f1; height:15px; margin-left:10px; }

        Список #6: Римская нумерация + многострочный тип

        По умолчанию в списке используются стандартная нумерация (1, 2, 3, 4 и т.д.). Изменив значение в CSS, вы можете задать другой тип нумерации, к примеру, римский.
        Так же по умолчанию, нумерация и маркеры располагаются вне списка (отличный пример тому - наш список под номером 2). Но и это исправимо, всего лишь нужно изменить значение list-style-position свойства на inside.

        1. Lorem ipsum dolor sit amet, ...
          Fusce sit amet ...
        2. Aenean placerat lectus tristique...
          Vivamus interdum ...
        3. Mauris eget sapien arcu, vitae...
          Phasellus neque risus...
        4. Phasellus feugiat lacus ...
          Duis rhoncus ...

        /* LIST #6 */ #list6 { font-family: "Trebuchet MS", "Lucida Grande", Verdana, Lucida, Geneva, Helvetica, Arial, sans-serif; } #list6 ol { list-style-type: upper-roman; color:#eee; font-size:14px; list-style-position: inside; } #list6 ol li { }

        Список #7: Линейный список, в котором пункты перечисляются через запятую

        Обычно списки используются для отображения количества чего-либо и отражаются в виде столбика. Но как быть, если вам нужен линейный список? Это достигается путем смены значения display свойства на inline. Но если вам вдруг понадобится встроить список в текст, то по правилам, пунктики списка должны быть разделены запятой. Как этого добиться? А, просто, при помощи элемента:after символического кода.

        • First inline item
        • Second inline item
        • Third inline item
        • Fourth inline item

        /* LIST #7 */ #list7 { } #list7 ul { color:#eee; font-size:18px; font-family:Georgia, Times, serif; } #list7 ul li { display: inline; } #list7 ul li:after { content: ", "; } #list7 ul li.last:after { content: ". "; }

        Список #8: Вращающееся навигационное меню

        Вот и последняя техника, для работы которой понадобится CSS3 (поддерживается только последними версиями Firefox, Safari и Chrome). При наведении курсора на один из элементов блока включается эффект - вращение. Конечно не самый удобный способ, но очень красивый.

        • Home
        • Blog
        • About
        • Contact

        /* LIST #8 */ #list8 { } #list8 ul { list-style:none; } #list8 ul li { font-family:Georgia,serif,Times; font-size:18px; } #list8 ul li a { display:block; width:300px; height:28px; background-color:#333; border-left:5px solid #222; border-right:5px solid #222; padding-left:10px; text-decoration:none; color:#bfe1f1; } #list8 ul li a:hover { -moz-transform:rotate(-5deg); -moz-box-shadow:10px 10px 20px #000000; -webkit-transform:rotate(-5deg); -webkit-box-shadow:10px 10px 20px #000000; transform:rotate(-5deg); box-shadow:10px 10px 20px #000000; }

        Заключение

        Как видите, реально создать уникальные вещи из обычного html-списка. И все это силами CSS. Очень рад, если вы узнали много интересного для себя.

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

          Задача

          Изменить вид маркеров в списке и заменить их на другой символ.

          Решение

          С помощью HTML или CSS допускается устанавливать один из трех типов маркеров: disc (точка), circle (кружок), square (квадрат). Добавлять эти значения нужно к стилевому свойству list-style-type , которое указывается для селектора UL или LI (пример 1).

          Пример 1. Стандартные маркеры

          HTML5 CSS 2.1 IE Cr Op Sa Fx

          Квадратные маркеры

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

          В данном примере в качестве маркеров используется квадрат (рис. 1).

          Рис. 1. Вид маркеров

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

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

          HTML5 CSS 2.1 IE Cr Op Sa Fx

          Символ в качестве маркера

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

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

          Рис. 2. Маркеры в виде символа

          Чтобы установить в качестве маркера какой-нибудь хитрый символ, можно воспользоваться программой Microsoft Word или таблицей символов, это стандартная программа входящая в комплект Windows. Кодировка кода должна быть обязательно UTF-8.