Я никогда не пробовал этого раньше. Я создал спрайт изображения, который содержит две иконки. Каждая иконка имеет ширину 26 пикселей и высоту. Таким образом, спрайт 26x52px.
У меня есть элемент, который находится либо в div.something, либо в div.anything. В зависимости от того, в каком классе он находится, я хочу добавить угловую заглушку слева или справа.
Таким образом, поэтому я позиционирую относительный элемент .element, применяю псевдокласс :before
к img и позиционирую его абсолютным с высотой и шириной 26 пикселей, так что подходит только один значок спрайта. Я также применяю «переполнение» скрытый ", чтобы скрыть второй значок на спрайте.
.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;
}
Это прекрасно работает для левого угла, где я использую первый верхний значок в спрайте.
Однако теперь мне интересно, как я могу показать только второй значок в спрайте для «что-нибудь .element».
Таким образом, на самом деле «маска» должна располагаться в -2px, -2px, но спрайт img внутри должен начинаться с -26px, поэтому отображается второй значок.
Возможно ли это с помощью css, как я это делаю сейчас?