chevron-left chevron-right

Piotr Nalepa Frontend, architektura i AI

[CSS] Lustrzane odbicie

Ta wersja
blog.piotrnalepa.pl/2010/08/22/css-lustrzane-odbicie
Opublikowano
Autor
, Staff Software Engineer
Kategoria
CSS
Uwagi
Napisz do mnie · Napisz na X

Ten wpis ma 16 lat. Od tego czasu przeglądarki i narzędzia mogły się zmienić, więc zanim użyjesz kodu, sprawdź go z aktualną dokumentacją.

W dzisiejszym krótkim artykule po dłuższej przerwie postanowiłem opisać sposób na zrobienie lustrzanego odbicia jakiegoś obrazka.
Dzięki temu, będzie można tworzyć efektownie wyglądające galerie zdjęć bez wykorzystywania skryptów PHP czy JavaScript.
Niestety, ta metoda ma jedną wadę - nie działa we wszystkich przeglądarkach. Działa jedynie w przeglądarkach opartych o silnik Webkit, czyli Google Chrome i Safari. Lecz istnieje prawdopodobieństwo, że w przyszłości specyfikacja CSS3 zostanie wzbogacona o obsługę tego typu efektów.

Na początek tworzymy strukturę HTML naszej galerii, która może przyjąć następującą postać:

Przykład 1HTML
<p>
   <img class="reflex" src="img1.jpg" alt="Mustang 1" />
   <img class="reflex" src="img2.jpg" alt="Ferrari" />
   <img class="reflex" src="img3.jpg" alt="Mustang 2" />
</p>
Jak pewnie zauważyłeś, drogi czytelniku, obrazki mają przypisaną klasę. Ma to na celu wskazanie, które obrazki mają mieć odbicie lustrzane.
Kod CSS odpowiadający za obsługę obrazków z odbiciem lustrzanym wygląda następująco:
Przykład 2CSS
.reflex {
	-webkit-box-reflect: below 0px /*kierunek gradientu przezroczystego - above|below|left|right*/
	-webkit-gradient(linear, 0% 0%, 0% 100%, /*krycie gradientu, w tym kierunek krycia - top left | bottom left*/
	from(transparent), color-stop(0.25, transparent), to(white)); /*maska kryjąca - więcej o tym, tutaj - http://webkit.org/blog/181/css-masks/*/
}
To by było na tyle. Cała magia opiera się na tym jednym, rozbudowanym atrybucie.
Demo z tego artykułu jest dostępne pod tym linkiem: lustrzane odbicie obrazka

Udostępnij
Uwagi

O autorze

Staff Software Engineer

Piszę na tym blogu od 2009 roku, a strony i aplikacje webowe tworzę zawodowo od 14 lat. Obecnie w Bishop Fox prowadzę frontend platformy Cosmos, od samego początku projektu. Wcześniej pracowałem m.in. w OLX, KUDO, Auto1 i eZ Systems. Piszę tu o tym, czego nauczyłem się w praktyce: o JavaScripcie, TypeScripcie, Reakcie, CSS-ie i architekturze frontendu. Występowałem też jako prelegent na konferencjach w Polsce i Europie. Masz pytanie albo pomysł na wpis? Daj znać!