Galeria zdjęć wykorzystując tylko CSS3



Galeria zdjęć wykorzystując tylko CSS3

Ponownie wracamy do tematu CSS3, niewątpliwie cały czas czekając aż wszystkie przeglądarki zaczną wspierać ten nowy standard, który rewolucjonizuje kasadowe arkusze styli.

Dzisiaj pokaże jak w naprawdę prosty sposób można stworzyć atrakcyjną galerię wykorzystując jedynie CSS3, bez konieczności użycia JavaScriptu. Zaproponowane rozwiązanie wykorzystuje silnik webkit, więc efekt jest widoczny na Chromie i Safari – na innych przeglądarkach galeria również funkcjonuje, jednakże nie korzysta z dobrodziejstw animacji CSS3.

Zobacz DEMO

Struktura HTML

Całość znajdować się będzie w pojemniku #boxMain. Z kolei pojemnik .boxContainer, wraz z jego zawartością stanowić będzie pojedynczy element galerii, który będzie zawierał 2 strony: .front – czyli obrazek widoczny na awersie oraz .back czyli tekst widoczny na rewersie:

  1. <div id="boxMain">
  2.   <div class="boxContainer">
  3.     <div class="boxSingle">
  4.       <div class="front"> <img src="img/1.jpg" alt="" /> </div>
  5.       <div class="back">
  6.         <h1>Witamina A</h1>
  7.        <p>Odpowiada za prawidłowe widzenie, zmniejsza rogowacenie naskórka, poprawia koloryt skóry, chroni skórę przed promieniami UV, zwiększa zawartość kolagenu w skórze właściwej.</p>
  8.      </div>
  9.     </div>
  10.   </div>
  11. </div>

CSS – podstawowa struktura

W następnej kolejności definiujemy podstawowe parametry poszczególnych pojemników, takie jak tło strony, kolor i krój czcionki. Główny pojemnik wyśrodkowujemy oraz ustawiamy wielkość i wygląd pojemników na poszczególne elementy galerii.

  1. body {
  2.  background: #000 url(../img/bg.png);
  3.  font-family: Helvetica, Arial, Sans-Serif;
  4.  color: #fff;
  5. }
  6.  
  7. #boxMain {
  8.  margin:0 auto;
  9.  width:900px;
  10. }
  11.  
  12. .boxContainer {
  13.  float: left;
  14.  margin:10px;
  15.  cursor: pointer;
  16. }
  17.  
  18.  
  19. .boxSingle {
  20.  width: 250px;
  21.  height: 250px;
  22.  border: 8px solid #fff;
  23.  
  24. }
  25.  
  26. .boxSingle p{
  27.  margin: 20px;
  28. }

Galeria zdjęć wykorzystując tylko CSS3

CSS podmiana stron po najechaniu kursorem

Teraz dodajemy style dla awersu i rewersu elementów w galerii, sprawiając by ich wygląd odpowiadał naszym oczekiwaniom stawianym galerii. Dodatkowo ważnym aspektem tego kroku jest rotacja z-index dla awersu (.front) elementu galerii, zwiększając go i zerując zależnie od obecności kursora nad nim. Dzięki temu zabiegowi w przeglądarkach które nie posiadają silnika webkit pozostanie efekt przejścia pomiędzy jedną, a drugą stroną elementu galerii.

  1. body {
  2.  background: #000 url(../img/bg.png);
  3.  font-family: Helvetica, Arial, Sans-Serif;
  4. }
  5.  
  6. #boxMain {
  7.  margin:0 auto;
  8.  width:900px;
  9. }
  10.  
  11. .boxContainer {
  12.  float: left;
  13.  margin:10px;
  14.  cursor: pointer;
  15. }
  16. .boxContainer .back h1 {
  17.  color: #333;
  18.  font-size: 35px;
  19.  font-weight: bold;
  20.  line-height: 40px;
  21.  overflow:hidden;
  22.  padding-top:10px;
  23.  text-align:center;
  24.  width: 250px;
  25. }
  26.  
  27. .boxSingle {
  28.  width: 250px;
  29.  height: 250px;
  30.  border: 8px solid #fff;
  31. }
  32.  
  33. .boxSingle p{
  34.  margin: 20px;
  35. }
  36.  
  37. .boxContainer .back {
  38.  position: absolute;
  39.  width: 250px;
  40.  height: 250px;
  41.  background: #a3a3a3 url(../img/texture.jpg);
  42. }
  43. .boxContainer:hover .front {
  44.  z-index: 0;
  45. }
  46. .front {
  47.  position: absolute;
  48.  z-index: 10;
  49. }

Galeria zdjęć wykorzystując tylko CSS3

Odrobina magii świąt, czyli dodanie CSS3

Efekt animacji przejścia pomiędzy rewersem, a awersem zrealizuje dla nas CSS3, ale najpierw musimy dodac trochę realizmu podczas wykonywania się animacji. W tym celu wykorzystamy -webkit-perspective, dzięki czemu przejście nie będzie się wydawało być płaskie oraz -webkit-transform-style, co umożliwi nałożenie na wszystkie potomne elementy efektu perspektywy. Dodatkowo wykorzystując -webkit-transition ustawiamy czas trwania animacji na 0.3s.

Teraz należy wprawić wszystko w ruch – zrealizujemy to wykonując-webkit-transform: rotateY(180deg); na zdarzenie hover, czyli obrót o 180 stopni po osi Y. Po wyjściu kursora z obszaru wykonywany jest kolejny obrót nałożony na klasę rewersu. Ostatnim ciekawym elementem jest -webkit-backface-visibility: hidden;, pozwalającym na ukrycie elementu jeżeli nie powinien byc widzialny. Niby oczywiste i po co wykorzystywać taki atrybut – jednakże bez niego może się zdarzyć tak, że zamiast po obrocie zobaczyć rewers, może się jedynie wyświetlić obicie lustrzane awersu.

  1. body {
  2.  background: #000 url(../img/bg.png);
  3.  font-family: Helvetica, Arial, Sans-Serif;
  4. }
  5.  
  6. #boxMain {
  7.  margin:0 auto;
  8.  width:900px;
  9. }
  10.  
  11. .boxContainer {
  12.  float: left;
  13.  margin:10px;
  14.  -webkit-perspective: 1000;
  15.  cursor: pointer;
  16. }
  17. .boxContainer .back h1 {
  18.  color: #333;
  19.  font-size: 35px;
  20.  font-weight: bold;
  21.  line-height: 40px;
  22.  overflow:hidden;
  23.  padding-top:10px;
  24.  text-align:center;
  25.  width: 250px;
  26.  text-shadow: 0 1px 1px #c3c1c1;
  27. }
  28.  
  29. .boxSingle {
  30.  width: 250px;
  31.  height: 250px;
  32.  border: 8px solid #fff;
  33.  -webkit-transform-style: preserve-3d;
  34.  -webkit-transition: 0.3s linear;
  35. }
  36.  
  37. .boxSingle p{
  38.  margin: 20px;
  39. }
  40.  
  41. .boxContainer:hover .boxSingle {
  42.  -webkit-transform: rotateY(180deg);
  43. }
  44.  
  45. .boxContainer .back {
  46.  position: absolute;
  47.  -webkit-backface-visibility: hidden;
  48.  width: 250px;
  49.  height: 250px;
  50.  -webkit-transform: rotateY(180deg);
  51.  background: #a3a3a3 url(../img/texture.jpg);
  52. }
  53. .boxContainer:hover .front {
  54.  z-index: 0;
  55. }
  56. .front {
  57.  position: absolute;
  58.  -webkit-backface-visibility: hidden;
  59.  z-index: 10;
  60. }

Zobacz DEMO

Related Posts with Thumbnails
Prześlij dalej:
Digg Google Bookmarks reddit Mixx StumbleUpon Technorati Yahoo! Buzz DesignFloat Delicious BlinkList Furl

2 komentarze do “Galeria zdjęć wykorzystując tylko CSS3”

naprawdę fajny efekt – szkoda tylko, że nie można jeszcze wykorzystywać CSS3 w profesjonalnych, komercyjnych stronach i aplikacjach ze względu na brak obsługi w głównych przeglądarkach :/

Kris, css3+html5 jak nie teraz to nigdy, do projektow komercyjnych css3 juz byl wykorzystywany na poczatku 2008 roku

Zostaw komentarz:

Imię (wymagane):
Email:
Strona www:
Komentarz (wymagany):
XHTML: W komentarzach możesz korzystać z nastepujących tagów: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
-