Как стать автором
Обновить

Верстка иконок с помощью псевдо-элементов и css свойства clip

Время на прочтение1 мин
Количество просмотров21K
Хороший способ верстки иконок, расположенных рядом с заголовками, или в качестве нестандартных маркеров списка — с помощью псевдо-элементов.

Раньше я это делал с помощью дополнительной разметки — например, тега <i>, который позиционировал абсолютно и фоном задавал картинку-спрайт с иконками.

Это способ позволяет избежать дополнительной разметки, но для IE младше 8го нужно написать expression, который будет осуществлять вставку псевдо-элемента.

Итак, есть заголовок:
<h1 id="anchor-header">Заголовок</h1>

И перед ним мы хотим поставить иконку из спрайта:


#anchor-header {
  position: relative;
  padding-left: 21px;
  background-image: expression(this.runtimeStyle.backgroundImage="none",
  this.innerHTML = '<img alt="" src="https://habrastorage.org/getpro/habr/post_images/09d/0ed/ce7/09d0edce7dbfd104c807e273376dc8f8.png">'+this.innerHTML);
}
 
#anchor-header:before,
#anchor-header img {
  content: url(habrastorage.org/getpro/habr/post_images/09d/0ed/ce7/09d0edce7dbfd104c807e273376dc8f8.png);
  position: absolute;
  top: 3px;
  clip: rect(4px 15px 18px 0);
  left: -14px;   
}

Получаем заголовок с иконкой:

По сравнению со способом, где иконка делается background'ом, преимущества следующие:
  • При печати иконка будет выводиться, потому что задана с помощью <img>, а не фоном;
  • Не нужна дополнительная html-разметка.


Пример на jsfiddle
Теги:
Хабы:
Всего голосов 80: ↑74 и ↓6+68
Комментарии26

Публикации

Истории

Ближайшие события

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань