Nigdy wcześniej tego nie próbowałem. Stworzyłem sprite obrazu, który zawiera dwie ikony. Każda ikona ma szerokość i szerokość 26 pikseli. Więc sprite ma 26x52px.CSS: używanie ikonek obrazu z pseudo klasami css: przed i: po
Mam element, który jest w div.something lub div.nething. W zależności od klasy, w której chcę umieścić narożnik lewy lub prawy.
Dlatego pozycjonuję relację .element, stosuję pseudoklasę :before
do img i ustawię ją absolutnie z wysokością i szerokością 26px, więc pasuje tylko jedna ikona ikonki. Stosuję również "przepełnienie: ukryte ", aby ukryć drugą ikonę na ikonce.
.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;
}
Działa to dobrze w lewym rogu, gdzie używam pierwszej górnej ikony w ikonce. Jednak teraz zastanawiam się, w jaki sposób mogę pokazać tylko drugą ikonę w ikonce dla "czegoś .elementu".
Tak więc "maska" powinna być ustawiona na -2px, -2px, ale obraz wewnątrz sprajtu powinien zaczynać się od -26px, aby wyświetlić drugą ikonę.
Czy jest to możliwe dzięki css tak jak teraz?
można pokazać demo http://jsfiddle.net/ co masz do tej pory? O ile mi wiadomo, ': before' nie działa z elementami' img': http://jsfiddle.net/thirtydot/CWXS3/. Twoje pytanie jest raczej mylące. – thirtydot
zredagowałem moje pytanie do .element not img. Chciałem tylko ułatwić zrozumienie. Nie wiedziałem, że to nie działa z img – matt
To ma sens. Odpowiedź, którą otrzymałeś, jest poprawna. Daj to przeczytać: http://tinyurl.com/so-hints. Podoba mi się ta część: '" Nie podawaj mi kodu, który jest "czymś w rodzaju" prawdziwego kodu, ale który wyraźnie nie jest prawdziwym kodem ". – thirtydot