Стилизуем маркированный список

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

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

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

[css]
li:before{
content: "# ";
color: #005070;
}
[/css]

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

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

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

И все бы хорошо, но имеется проблема с всеми любимым браузером. Internet Explorer, вплоть до 8 версии, не поддерживает before. Однако это проблема разрешима, спасибо статье  Владимир Токмакова, на сайте студии Артемия Лебедева. Оказалось, что в IE, можно эмулировать before, через expression, следующим образом:

[css]
li{
list-style: none;
behavior: expression( !this.before
? this.before = this.innerHTML = ‘#  ’ + this.innerHTML : ” );
color: #005070;
line-height: 20px;
}
[/css]

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


Posted

in

by

Comments

10 responses to “Стилизуем маркированный список”

  1. 166MMX Avatar

    У меня несколько вопросов:
    1) Что значит «типографские символы записываются в шестнадцатеричном коде»? Или имеются в виду мнемонические коды, как следует из примера ниже?
    2)Иконку RSS сами рисовали?

    Рад, что наконец-то на главной появилась ссылка на RSS-поток. переподписался.

    1. dreamhelg Avatar
      dreamhelg

      1) Мнемонические коды записываются для IE, в expression, поскольку свойство content, IE игнорирует. А для остальных, нормальных браузеров, типографские знаки действительно записываются в шестнадцатеричном коде, начиная с косой черты. Например, для того чтобы вставить перед позицией списка длинное тире, нужно написать следующее:

      li:before{
      content: “\2014”
      }

      2) Иконка для RSS из бесплатных, к сожалению я пока так рисовать не умею)

  2. Jeen Avatar

    О, хорошо, пригодится.

  3. Богдан Avatar

    Большое спасибо за информацию, буду юзать. 🙂

  4. Ksana Avatar

    А где можно посмотреть шестнадцатеричные коды различных знаков?

    1. dreamhelg Avatar
      dreamhelg

      в интернете можно найти множество ссылок, вот например здесь, или здесь

  5. Костя Avatar

    У меня ие8 норамально переварил :before, может все-таки “вплоть до 7 версии” 😉

  6. dreamhelg Avatar
    dreamhelg

    Ну, вообще, во фразе “вплоть до 8 версии”, я имела в виду, ДО 8 версии, а с восьмеркой все в порядке)

  7. Persimmon Avatar
    Persimmon

    спаисбо за интересную информацию! очень пригодилось!

  8. Артем Avatar

    То что надо, как раз искал инфу по маркированным спискам

Leave a Reply to dreamhelg Cancel reply

Your email address will not be published. Required fields are marked *