Нумерованные и ненумерованные списки по фен-шую

Июль 26, 2012
|

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

К примеру, нам нужны такие списки:

Пишем в HTML список:

<div class="two-cols">
	<div class="col">
		<ul>
			<li>За многие годы ОАО «Электровыпрямитель»</li>
			<li>Зарекомендовало себя хорошим поставщиком</li>
			<li>Приборы и оборудование предприятия надежно работают в России и за рубежом уже более 40 лет. Предприятие поставляет свою продукцию более чем в 50 стран мира.</li>
			<li>Качество выпускаемой продукции гарантировано приемками со стороны ОТК, заводской инспекцией ОАО «РЖД»</li>
		</ul>
	</div>
	<div class="col">
		<ol>
			<li>За многие годы ОАО «Электровыпрямитель»</li>
			<li>Зарекомендовало себя хорошим поставщиком</li>
			<li>Приборы и оборудование предприятия надежно работают в России и за рубежом уже более 40 лет. Предприятие поставляет свою продукцию более чем в 50 стран мира.</li>
			<li>Качество выпускаемой продукции гарантировано приемками со стороны ОТК, заводской инспекцией ОАО «РЖД»</li>
		</ol>
	</div>
</div>

Получем наш список:

  • За многие годы ОАО «Электровыпрямитель»
  • Зарекомендовало себя хорошим поставщиком
  • Приборы и оборудование предприятия надежно работают в России и за рубежом уже более 40 лет. Предприятие поставляет свою продукцию более чем в 50 стран мира.
  • Качество выпускаемой продукции гарантировано приемками со стороны ОТК, заводской инспекцией ОАО «РЖД»
  1. За многие годы ОАО «Электровыпрямитель»
  2. Зарекомендовало себя хорошим поставщиком
  3. Приборы и оборудование предприятия надежно работают в России и за рубежом уже более 40 лет. Предприятие поставляет свою продукцию более чем в 50 стран мира.
  4. Качество выпускаемой продукции гарантировано приемками со стороны ОТК, заводской инспекцией ОАО «РЖД»

Добавляем в CSS стили для списков:

ul,
ol{
     padding:0 0 0 28px;
     counter-reset: chapter 0;
}
li{
     margin: 9px 0;
     counter-increment: chapter;
     list-style: none;
     }
     li:before{
          display: block;
          float:left;
     }
     ol li:before{
          width:20px;
          margin: -1px 0 0 -28px;
          padding: 2px 0;
          background: #aebccd;
          -moz-border-radius: 3px;
          -webkit-border-radius: 3px;
          border-radius: 3px;
          color: #fff;
          content: counter(chapter, decimal);
          font-weight: bold;
          line-height: 1.2;
          text-align: center;
     }
     ul li:before{
          width:8px;
          height: 8px;
          margin:5px 0 0 -22px;
          background:url(/img/design/lists.png) 0 0 no-repeat;
          content:"";
	}

Теперь наши списки выглядят вот так:

  • За многие годы ОАО «Электровыпрямитель»
  • Зарекомендовало себя хорошим поставщиком
  • Приборы и оборудование предприятия надежно работают в России и за рубежом уже более 40 лет. Предприятие поставляет свою продукцию более чем в 50 стран мира.
  • Качество выпускаемой продукции гарантировано приемками со стороны ОТК, заводской инспекцией ОАО «РЖД»
  1. За многие годы ОАО «Электровыпрямитель»
  2. Зарекомендовало себя хорошим поставщиком
  3. Приборы и оборудование предприятия надежно работают в России и за рубежом уже более 40 лет. Предприятие поставляет свою продукцию более чем в 50 стран мира.
  4. Качество выпускаемой продукции гарантировано приемками со стороны ОТК, заводской инспекцией ОАО «РЖД»

А что, собственно произошло?

Первое, counter-reset: chapter 0; — это обнуление счетчика нумерованных списков, чтобы после начала нового списка, первый элемент начинался с единицы.
Второе, counter-increment: chapter; — это счетчик элементов, при добавлении нового элемента в список, увеличивается на единицу.
Третье, content: counter(chapter, decimal); — запись в HTML счетчика, первый пунктом, ваш счетчик, а во-втором, тип написания, поддерживает те же написания, что и list-style;
А вот для ненумерованного списка мы ничего в content не пишем, потому, что у нас там ничего нет, но content написать нужно, иначе before не заработает.

Как тут с кроссбраузерностью?

На удивление всё очень хорошо. Этот метод основан исключельно на before и не затрагивает внешний вид li, поэтому для IE<8 просто прописываем стандартные значения обозначения маркеров списка:

ul li{
        list-style: disc outside none;
}
ol li{
        list-style: decimal outside none;
}

и больше ничего прописывать не надо.

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

Автор записи: Евгений Булгаков

  • http://ocular-out.fav.cc/2013/01/%d0%bd%d1%83%d0%bc%d0%b5%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%bd%d1%8b%d0%b5-%d0%b8-%d0%bd%d0%b5%d0%bd%d1%83%d0%bc%d0%b5%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%bd%d1%8b%d0%b5-%d Нумерованные и ненумерованные списки по фен-шую – Блог студии Доминион | Статьи и заметки

    [...] [...]

Twitter Facebook Flickr