Я никогда раньше этого не пробовал. Я создал спрайт изображения, содержащий два значка. Каждый значок имеет ширину 26 пикселей и высоту. Таким образом, спрайт 26x52px.
У меня есть элемент, который находится либо в div.something, либо в div.anything. В зависимости от того, в каком классе я хочу добавить угловую крышку влево или вправо.
Итак, поэтому я позиционирую относительный элемент .element, применяя псевдографический код :before
к img и устанавливаю его абсолютным с высотой и шириной 26 пикселей, поэтому подходит только один значок спрайта. Я также применяю "переполнение": hidden ", чтобы скрыть второй значок спрайта.
.element {
position:relative;
}
.element:before{
content: url("../images/sprite.png");
position: absolute;
height:26px;
width:26px;
overflow:hidden;
}
.something .element:before {
top: -2px;
left: -2px;
}
anything .element:before {
top: -28px;
right: -2px;
}
Это отлично работает для левого угла, где я использую первую верхнюю иконку в спрайте. Однако теперь мне интересно, как я могу показать только вторую икону в спрайте для "ничего.элемент".
Итак, фактически "маска" должна быть расположена на -2px, -2px, но спрайт img внутри должен начинаться с -26px, поэтому отображается второй значок.
Возможно ли это с помощью CSS, как я это делаю прямо сейчас?