На моем сайте есть заголовки, перед каждым из которых есть изображение.
HTML
<section id="about">
<h2>About</h2>
<p>Some stuff about it</p>
</section>
<section id="where_to_buy">
<h2>Where to Buy</h2>
<p>Some info on where to buy</p>
</section>
CSS
h2 {
padding-left: 24px;
background-repeat: none;
}
#about h2 {
background-image: url(../images/about.png);
}
#where_to_buy h2 {
background-image: url(../images/where_to_buy.png);
}
С большим количеством заголовков это означает множество крошечных png-файлов, которые я хотел бы объединить в один CSS-спрайт, чтобы уменьшить количество HTTP-запросов. Однако я могу думать только о том, чтобы сделать это, добавив в разметку новый элемент, которого я бы предпочел избежать.
HTML
<section id="about">
<h2><span class="icon"/>About</h2>
<p>Some stuff about it</p>
</section>
<section id="where_to_buy">
<h2><span class="icon"/>Where to Buy</h2>
<p>Some info on where to buy</p>
</section>
CSS
h2 .icon {
width: 24px; height: 24px;
display: inline-block;
background: url(../images/heading_icons.png) no-repeat;
}
#about h2 .icon {
background-position: 0 0;
}
#where_to_buy h2 {
background-position: -24px 0;
}
Есть ли эффективный способ представить спрайты CSS без добавления ненужных новых элементов в разметку?