Responsywne projektowanie stron internetowych to znaczące osiągnięcie dla całej sieci. Nie jesteśmy już spętani przez dawno przestarzały model „drukowanej strony” ze statyczną zawartością podzieloną na regiony o stałym rozmiarze. Dziś Internet może żyć, oddychać i dostosowywać się, wypełniając całą dostępną na ekranach przestrzeń. różne urządzenia zaczynając od telefony komórkowe- i do ogromnych wyświetlaczy wideo. Tym właśnie miała być Globalna Sieć.

Ale jest mały problem. Strony internetowe często zawierają banery reklamowe i tradycyjne banery, które nie są zbyt elastyczne. Zarówno banery flash, jak i GIF mają stałe rozmiary, dlatego są niekompatybilne z nowoczesnymi układ adaptacyjny. Potrzebujemy nowa metoda kreacja baner reklamowy. Potrzebujemy "responsywnych" banerów...

Nowy format banera

Jedynym sposobem, aby baner był tak elastyczny jak nasz znacznik, jest napisanie go w HTML5. Na pierwszy rzut oka może się to wydawać szalonym pomysłem, ale zapewniam, że tak nie jest. W rzeczywistości takie podejście ma wiele zalet:

  • Reklamy HTML są wszędzie, a znaczniki semantyczne sprawią , że będzie odpowiedni dla czytników ekranu ;
  • tekst, obrazy, filmy, skrypty i formularze - wszystko to można wykorzystać w banerze tak jak na każdej stronie internetowej;
  • Jeśli to konieczne banery mogą używać dynamicznych skryptów i baz danych po stronie serwera;
  • baner można zmienić po jego umieszczeniu;
  • plik (zestaw plików) banera HTML może mieć bardzo skromny rozmiar;
  • serwowanie banerów zasadniczo sprowadza się do hostingu;
  • programiści stron internetowych nie muszą uczyć się niczego nowego- wszystkie technologie pozostają takie same jak w konwencjonalnym tworzeniu stron internetowych;
  • i oczywiście, Korzystając z zapytań o media CSS3, możesz dostosować reklamy HTML5 do dowolnego rozmiaru- w końcu takiego zachowania oczekujemy od banerów adaptacyjnych!

Jak można to osiągnąć?

Najpierw baner jest tworzony jako gumowa strona HTML5. Wypełniamy go tekstem, obrazami, linkami do wymaganej strony, dekorując to wszystko za pomocą CSS3. Po drugie, taki baner można umieścić na dowolnej stronie internetowej za pomocą pływającego elementu iframe. Jest pewien trik polegający na używaniu zapytań o media CSS3, aby zapewnić dynamikę wymiarów iframe, o czym opowiem wkrótce... Ale w większości to wszystko!

Przyjaciele, witam wszystkich. Dziś będziemy kontynuować tworzenie banerów w Program Google Web Designer w formacie HTML5, z efektem 3D.

I to zrozumiałe, banery tworzone na html5 i css3 wyświetlają się na dowolnych ekranach, zarówno na komputerze, telewizorach, jak i urządzeniach mobilnych. Czego nie można powiedzieć o banerach flashowych.

Ponadto banery te można wykorzystać wystarczająco, a baner będzie wyglądał świetnie na każdym ekranie.

A biorąc pod uwagę fakt, że urządzenia mobilne są coraz częściej wykorzystywane do przeglądania zasobów internetowych, to jest to bardzo ważne.

Główny i jego umieszczenie na stronie, o których mówiłem już w ostatnim artykule. Dlatego dziś zwrócę uwagę na tworzenie efektu 3D i ustawienia cykli (powtórek). Rozważ także kilka ustawień „wydarzeń”.

Trudno jest szczegółowo opisać cały ten proces, dlatego zwracam uwagę na samouczek wideo. Więc o wiele łatwiej będzie opanować materiał. A także pobierz archiwum z projektem mojego banera, jako dobry przykład.

Przygotowanie do stworzenia banera z efektem 3D.

Rodzaj banera w gotowej formie ostatecznie zależy od przygotowania. Edytor Google Web Designer umożliwia tworzenie realistycznych efektów 3D, a wszystko to zostanie napisane w Kod HTML, wystarczy wszystko poprawnie złożyć w edytorze wizualnym.

Aby uzyskać wysokiej jakości efekt 3D, musisz najpierw wyciąć puste miejsca w Photoshopie, które później trzeba będzie połączyć w Google Web Designer.

Jako przykład przygotowałem następujące puste miejsca:

Zrobiłem te puste miejsca w Photoshopie, ale w Internecie jest wiele podobnych obrazów. Nie możesz się przeciążyć, ale weź gotowe opcje.

Uwaga: Jeśli interesuje Cię proces tworzenia takich pustych miejsc, napisz o tym w komentarzach.

Ważne jest również przemyślenie ogólnego składu banera i scenariusza. Zależy to od ogólnego odbioru banera.

Tworzenie obiektu 3D w Google Web Designer.

Tak więc, analogicznie do poprzedniego artykułu, uruchom edytor, utwórz nowy projekt.

Efekt 3D implikuje obraz kompozytowy, czyli obraz składający się z kilku części znajdujących się w pożądanej projekcji.

Te liczne obrazy należy połączyć w grupę lub umieścić w bloku DIV. I tak będzie dobrze. Ale wygodniej jest mi pracować ze stroną DIV.

Krok 1: Utwórz blok DIV.

Aby utworzyć blok DIV, w lewym panelu wybierz „Narzędzie do tagowania (D)".

Pamiętaj, aby przypisać identyfikator. I dostosuj wymiary za pomocą sekcji "Nieruchomości" w prawym panelu.

Teraz musimy wybrać blok. Aby to zrobić, w lewym panelu wybierz "narzędzie selekcji (V)" i kliknij dwukrotnie lewym przyciskiem myszy ramkę bloku DIV. Zmieni kolor na czerwony.

Krok 2 Wyrównaj obrazy.

A teraz zaczyna się najbardziej żmudny proces. Musisz wyeksponować wszystkie elementy jednego obrazu.

mam do dyspozycji następujące elementy:

- Górna strona.

- Boczna strona (składa się z trzech oddzielnych części).

Najpierw umieść odwrotną (tylną) stronę obrazu i wyrównaj ją ze środkową i górną krawędzią banera.

W ten sam sposób dodaj przednią stronę. Wyrównaj i odsuń wzdłuż osi Z.

Ponieważ szerokość boku wynosi 4px (piksel), przesunąłem przednią i tylną stronę wzdłuż osi Z o 2px i -2px. Zapewni to przerwę między obrazami.

Uwaga: zobacz zrzuty ekranu, aby zobaczyć dokładne numery przesunięcia.

Następnie dodaj bok, wszystkie części osobno. Aby ułatwić umieszczenie, użyj narzędzi „3Obrót obszaru roboczego D" oraz "Skala". Pomogą Ci dokładnie dopasować wszystkie szczegóły.

Na początek proponuję zbudować wszystkie obrazy z jednej strony, a następnie skopiować je i umieścić w rzucie lustrzanym z drugiej strony.

Następnym krokiem jest zbudowanie lewego górnego rogu.

Teraz środkowa część boku.

I dolny róg po lewej stronie.

Pamiętaj, aby wyrównać wszystkie elementy boku wzdłuż osi Y o 90 0.

Teraz musimy skopiować żądaną warstwę i wkleić ją ponownie, zmieniając nazwę i zmieniając parametry lokalizacji, aby uzyskać elementy po prawej stronie.

Aby to zrobić, wybierz obraz w dolnym panelu - naciśnij kombinację klawiszy CTRL + C (kopiuj) i wklej duplikat CTRL + V.

Zacznijmy w taki sam sposób jak od strony pola od góry do dołu, ale tylko po prawej stronie.

Prawa górna okładka.

Nie zrobiłem dolnej części, ponieważ nie jest ona widoczna na zdjęciu.

Najcięższa praca dobiegła końca. Teraz możemy zacząć konfigurować animację. Jako wizualną demonstrację obróćmy obraz.

Tworzenie efektu rotacji w Google Web Designer.

Pierwszym krokiem jest wyjście z bloku DIV, który zawiera wszystkie elementy obrazu. Oznacza to, że pracowaliśmy wewnątrz bloku z określonymi obrazami, a teraz będziemy musieli pracować ze wszystkimi obrazami jednocześnie, kontrolując blok DIV.

Aby rozpocząć, kliknij przycisk DIV na dolnym pasku.

Tak więc w domku czasu, klikając prawy przycisk myszy, utwórz dwie klatki kluczowe. Powinno wyglądać tak:

Położenie klatki źródłowej na skali Y jest ustawione na -90 0 .

Pierwsza klatka kluczowa (druga z rzędu) jest ustawiona na skali Y na 0 0 .

Druga klatka kluczowa (trzecia) jest ustawiona na skali Y na 90 0 .

Możesz sprawdzić wynik. Aby to zrobić, kliknij przycisk bawić się.

To prawda, że ​​nasz wizerunek dokona tylko jednej rewolucji. Aby obraz stale się obracał lub wykonywał kilka obrotów, musisz dostosować parametry cyklu.

Konfiguracja jazdy na rowerze w Google Web Designer.

W programie możesz skonfigurować kilka opcji jazdy na rowerze (powtórek). Możesz więc ustawić powtarzanie dla wszystkich elementów banera lub dla każdego elementu osobno.

Również cykliczność może być ograniczona liczbą powtórzeń lub nieskończona.

Na dolnym panelu przy każdym elemencie znajdują się symbole „Blokada”, „Oko”, „Odwrócona strzałka”.

Tak więc, aby ustawić cykl, musisz kliknąć symbol „Odwrócona strzałka”. I wybierz albo Limitowana ilość powtórzenia lub nieskończona opcja.

Wybrałem animację w nieskończonej pętli. Ponieważ chcę się założyć „Rozwój” w taki sposób, że obrót zostanie zatrzymany po najechaniu kursorem myszy i będzie kontynuowany po usunięciu kursora.

Zatrzymaj obrót po najechaniu myszą na baner.

Przede wszystkim na pierwszej klatce kluczowej (drugiej z rzędu) ustawiamy etykietę. Aby to zrobić, naciśnij prawy przycisk myszy nad ramką i wybierz element menu „Dodaj etykietę”. Wprowadź nazwę etykiety i naciśnij klawisz Enter.

A w następnym kroku wybierz jako odbiorcę « Strona 1". Nie będzie innych opcji.

I ostatni krok, wybierz etykietę, którą utworzyłeś na początkowym etapie.

Zapisz wydarzenia i sprawdź. Obrót banera zostanie zatrzymany po najechaniu kursorem myszy na ramkę, w której została wykonana etykieta.

Wznawianie obrotu po przesunięciu kursora myszy.

Aby obrót był kontynuowany po przesunięciu kursora w bok, skonfiguruj kolejne zdarzenie.

Jest skonfigurowany podobnie jak poprzedni, z tylko dwiema różnicami.

Wydarzenie zostało wybrane "Mysz"« brak myszy".

Zdarzenie - poruszanie myszą

Ale jako akcja „Oś czasu”« przełączanie".

Akcja - Kontynuuj

Więc nasz baner z efektem 3D jest gotowy. I możesz wymyślić tyle różnych efektów, ile chcesz.

Tylko nie zapomnij zrobić wydarzenia po kliknięciu myszą i otwarciu linku. W końcu sztandar nie został stworzony ze względu na piękno.

Początkowo ten proces może wydawać się skomplikowany, ale po zrobieniu kilku banerów nie będzie Ci się już tak wydawać.

To wszystko na dzisiaj, przyjaciele. Życzę powodzenia, czekam na Wasze komentarze i do zobaczenia w nowych artykułach i samouczkach wideo.

Z poważaniem Maxim Zaitsev.

Dzisiaj stworzymy baner wykorzystując animację CSS3.

Obecnie tylko przeglądarki Firefox i WebKit obsługują animacje CSS, ale przyjrzymy się, jak sprawić, by te banery działały również w innych przeglądarkach (które nazywam przeglądarkami z XVIII wieku). Nie oczekuj jednak świetnego wsparcia we wszystkich przeglądarkach (w szczególności IE 7 i niższych) podczas eksperymentowania z nowoczesnymi technikami CSS.

Stwórzmy więc animowane banery!

Uwaga: w celu zaoszczędzenia miejsca wszystkie prefiksy przeglądarki zostały usunięte. Cm. pliki źródłowe aby zobaczyć cały kod CSS. Jeśli nie znasz animacji CSS, gorąco polecamPrzede wszystkimPrzeczytaj to.

Znaczniki HTML

Najpierw stworzymy strukturę banera za pomocą Pomoc HTML. W tym momencie musimy pomyśleć o tym, jak chcemy, aby nasza animacja działała - jak wpłynie na elementy potomne i nadrzędne w naszej strukturze znaczników (wyjaśnię to poniżej):



> Zaginiony na morzu? >
> Spokojnie - mamy twój ster. >
>


>
>


  • >
  • >
  • >
    >

    • >
    • >
    • >
      >
      >

        >
        >
        >
        >

        • >
        • >
          >
          >

          Aby zrozumieć strukturę naszych znaczników, skupmy się przez chwilę na łodzi:


            >
            >
            >
            >

            Spójrzmy teraz na pierwszy baner na stronie demonstracyjnej. Na statku odbywają się trzy oddzielne animacje:

            • Animacja - gdy łódź ślizga się z lewej strony. Dotyczy to bezpośrednio listy nieuporządkowanej (grupy elementów łodzi).
            • Animacja - która nadaje łodzi efekt kołysania, symulując łódź unoszącą się na wodzie. Dotyczy to bezpośrednio elementów listy (do łodzi).
            • Animacja - ukrywająca znak zapytania. Dotyczy to div (znaku zapytania).

            Jeśli nie dostaniesz choroby morskiej, spójrz ponownie na stronę demonstracyjną. Zobaczysz, że animacja zastosowana do elementu listy (łodzi), powodująca podniesienie łodzi, wpływa również na znajdujący się w niej element DIV (ze znakiem zapytania). Ponadto animacja „wsuwania się” zastosowana do nieuporządkowanej listy (grupy) wpływa również na element listy i znajdujący się w nim element DIV (łodzi i znak zapytania). To prowadzi nas do ważnych obserwacji:

            Elementy potomne dziedziczą animację od swoich rodziców, oprócz własnej animacji. Ta wiedza została dodana do naszego arsenału, ale liczba dzieci/rodziców podczas tworzenia animacji rozwali Twój umysł (i procesor na laptopie Twojej babci)!

            css

            Zanim przejdziemy do naprawdę ciekawych rzeczy i zaczniemy tworzyć animacje, musimy jeszcze ostylować przeglądarki, które utknęły w XVIII wieku.

            Style awaryjne dla starszych przeglądarek

            Po prostu stworzymy style awaryjne tak, jakby animacja CSS nie istniała (pomysł, że animacja CSS nie istnieje, sprawi, że każdy dorosły nie tylko będzie płakał, ale zawisł obok mnie :)). Innymi słowy, jeśli nasza animacja się nie odtworzy, baner nadal powinien wyglądać przyzwoicie. W ten sposób, gdy ktoś wyświetli baner w starej przeglądarce, zobaczy normalny, statyczny baner zamiast pustej przestrzeni.

            Na przykład: jeśli ktoś używa CSS w ten sposób, będą problemy:

            /* ZŁA DROGA! */


            0% ( krycie: 0 ; )
            100% ( krycie: 1 ; )
            }

            Dyw (
            krycie: 0 /* Ten blok jest domyślnie ukryty!*/

            }

            Jeśli przeglądarka użytkownika nie obsługuje animacji, baner pozostanie niewidoczny dla użytkownika. A wtedy klient wyłamie drzwi w biurze sprzedawcy - z piłą łańcuchową w ręku - i zażąda wyjaśnienia, dlaczego nie sprzedał swojego produktu! A jeśli nie zrozumieją, że przeglądarka może być tak nieszczęśliwa, ich życie skończy się strasznie, a ich ostatnimi słowami będą przekleństwa w Internet Explorerze... :)

            Ale nie martw się, zapewnimy rozszerzoną obsługę przeglądarek:

            /* WŁAŚCIWY SPOSÓB */

            @keyframe nasza-zanikanie-animacji (
            0% ( krycie: 0 ; )
            100% ( krycie: 1 ; )
            }

            Dyw (
            krycie: 1 /* ten div będzie domyślnie widoczny */
            animacja: nasza animacja zanikania 1s 1 ;
            }

            Jak widać, DIV nadal będzie się pojawiał, nawet jeśli animacja nie zostanie odtworzona. Jeśli animacja może się odtworzyć, DIV zostanie natychmiast ukryty i animacja będzie odtwarzana do końca.

            Teraz, gdy wiemy, jak sprawić, by nasze animowane banery obsługiwały starsze przeglądarki, przejdźmy do podstawowego CSS.

            Należy pamiętać o trzech kluczowych kwestiach:

            • Ponieważ te reklamy mogą być używane w różnych witrynach, sprawimy, że wszystkie nasze style CSS będą bardzo specyficzne. Zaczniemy deklarować każdy selektor z identyfikatorem: #ad-1. Dzięki temu nasze style banerów nie będą zakłócane przez istniejące style i elementy.
            • Celowo będziemy zignoruj ​​funkcję opóźnienia animacji podczas tworzenia naszej animacji. Gdybyśmy mieli odpowiednio wykorzystać funkcję opóźnienia animacji, a także zaprojektować nasze elementy (domyślnie widoczne), to wszystko byłoby widoczne na ekranie, zanim animacja w końcu się odtworzy. Dlatego animacja uruchamia się natychmiast, co pozwala nam ukryć elementy z ekranu, dopóki ich nie potrzebujemy. Będziemy symulować opóźnienie animacji, zwiększając czas trwania i ręcznie dostosowując klatki kluczowe. Zobaczysz tego przykłady, gdy zaczniemy tworzyć animacje.
            • Jeśli to możliwe, użyj jednej animacji dla wielu elementów. W ten sposób możemy zaoszczędzić sporo czasu i zredukować rozrost kodu. W tej samej animacji można utworzyć kilka różnych efektów, dostosowując czas trwania i przejścia.

            Tak więc zaczniemy tworzyć nasz baner reklamowy. Upewnijmy się, że ma pozycję względną (pozycja: względna), aby elementy wewnątrz niej mogły być umieszczone poprawnie. Musimy również upewnić się, że właściwość overflow: hidden jest ustawiona na ukrywanie wszystkiego innego:

            #ad-1 (
            szerokość: 720px
            wysokość: 300px
            pływak : lewy ;
            margines : 40px auto 0 ;
            obraz w tle : url (../images/ad-1/background.png ) ;
            pozycja tła : środek ;
            background-repeat : bez powtórzeń ;
            przepełnienie: ukryte
            pozycja : względna ;
            box-shadow: 0px 0px 6px #000 ;
            }

            #ad-1 #treść(
            szerokość: 325px
            pływak : prawo ;
            margines : 40px ;
            wyrównanie tekstu : środek ;
            z-indeks : 4 ;
            pozycja : względna ;
            przelew: widoczny
            }
            #ad-1 h2 (
            rodzina czcionek : "Alfa Slab One" , kursywa ;
            kolor : #137dd5 ;
            rozmiar czcionki : 50px ;
            wysokość linii : 50px ;

            animacja: animacja opóźnionego zanikania 7s 1 easy-in-out; /* H2 zniknie z symulowanym opóźnieniem animacji */
            }
            #ad-1 h3 (

            kolor : #202224 ;
            rozmiar czcionki : 31px ;
            wysokość linii : 31px ;
            cień tekstowy : 0px 0px 4px #fff ;
            animacja: animacja opóźnionego zanikania 10 s 1 złagodzenie; /* H3 zniknie z symulowanym opóźnieniem animacji */
            }
            Formularz #ad-1 (
            margines : 30px 0 0 6px ;
            pozycja : względna ;
            animacja: forma-animacja 12s 1 easy-in-out; /* Ten kod przenosi nasz formularz e-mail */
            }
            #ad-1 #e-mail (
            szerokość : 158px ;
            wysokość : 48px ;
            pływak : lewy ;
            wypełnienie: 020px
            rozmiar czcionki : 16px ;
            rodzina czcionek : "Lucida Grande" , bezszeryfowa ;
            kolor : #fff ;
            cień tekstowy : 1px 1px 0px #a2917d ;
            obramowanie-górny-lewy-promień: 5px ;
            obramowanie-dolny-lewy-promień: 5px ;
            obramowanie: 1px stałe #a2917d;
            zarys : brak ;
            box-shadow: -1px -1px 1px #fff ;
            kolor tła : #c7b29b ;
            background-image : linear-gradient(bottom , rgb (216 , 201 , 185) 0% , rgb (199 , 178 , 155) 100% );
            }
            #ad-1 #e-mail :skup się (
            background-image : linear-gradient(bottom , rgb (199 , 178 , 155) 0% , rgb (199 , 178 , 155) 100% );

            }
            #ad-1 #prześlij (
            wysokość: 50px
            pływak : lewy ;
            kursor : wskaźnik ;
            wypełnienie: 020px
            rozmiar czcionki : 20px ;
            rodzina czcionek : "Boogaloo" , kursywa ;
            kolor : #137dd5 ;
            cień tekstowy : 1px 1px 0px #fff ;
            obramowanie-prawy-górny-promień: 5px ;
            border-bottom-right-promień: 5px ;
            obramowanie : 1px stałe #bcc0c4 ;
            obramowanie po lewej : brak
            kolor tła : #fff ;
            background-image : linear-gradient(bottom , rgb (245 , 247 , 249) 0% , rgb (255 , 255 , 255 ) 100% ) ;
            }
            #ad-1 #prześlij :najedź (
            background-image : linear-gradient(bottom , rgb (255 , 255 , 255 ) 0% , rgb (255 , 255 , 255 ) 100% ) );
            }

            Teraz nadamy styl wodzie i wywołamy odpowiednią animację:

            #ad-1 ul#woda (
            /* Gdybyśmy chcieli dodać kolejną animację dla wody (na przykład poruszania się w poziomie), moglibyśmy to zrobić tutaj */
            }
            #ad-1 li#powrót wody (
            szerokość: 1200px
            wysokość : 84px ;
            obraz w tle : url (../images/ad-1/water-back.png ) ;

            z-indeks : 1 ;
            pozycja : bezwzględna ;
            dół: 10px
            lewy : -20px
            animacja: animacja powrotu wody 3s nieskończona łatwość-in-out; /* Efekt odbijania wody */
            }
            #ad-1 li#front nawodny (
            szerokość: 1200px
            wysokość : 158px ;
            obraz w tle : url ( ../images/ad-1/waterfront.png) ;
            powtarzanie w tle : powtarzanie-x ;
            z-indeks : 3 ;
            pozycja : bezwzględna ;
            dół : -70px ;
            lewo : -30px
            animacja: animacja frontu wody 2s nieskończona łatwość-in-out; /* Kolejny efekt odbijania wody - jest nieco inny. Zrobimy tę animację trochę szybciej, aby dać trochę perspektywy. */
            }

            Teraz stwórzmy style dla łodzi i wszystkich jej elementów. Ponownie wywołamy odpowiednią animację:

            #ad-1 ul#łódź (
            szerokość : 249px ;
            wysokość: 215px
            z-indeks : 2 ;
            pozycja : bezwzględna ;
            dół: 25px
            po lewej: 20px
            przelew: widoczny
            animacja: animacja w łodzi 3s 1 luz; /* Przenieś grupę na początek */
            }
            #ad-1 ul#łódź li (
            szerokość : 249px ;
            wysokość: 215px
            obraz w tle : url (../images/ad-1/łódź.png ) ;
            pozycja : bezwzględna ;
            dół: 0px
            po lewej: 0px
            przelew: widoczny
            animacja: animacja łodzi 2s nieskończona łatwość-in-out; /* Imitacja łodzi podskakującej na wodzie - podobna animacja została już zastosowana dla samej wody. */
            }
            #ad-1 #znak zapytania (
            szerokość: 24px
            wysokość: 50px
            obraz w tle : url ( ../images/ad-1/question-mark.png) ;
            pozycja : bezwzględna ;
            prawo : 34px ;
            góra : -30px ;
            animacja: animacja opóźnionego zanikania 4s 1 złagodzenie; /* Ukryj znak zapytania */
            }

            Na koniec stworzymy style dla grupy chmur i dla jednej chmury. Uruchomimy też całkiem fajną animację, która zapewni im ciągły efekt przewijania. Oto ilustracja tego, co się stanie:

            Oto style:

            #ad-1 #chmury (
            pozycja : bezwzględna ;
            góra : 0px ;
            Z-indeks : 0
            animacja: animacja w chmurze 30s nieskończona liniowa; /* Przesuń chmury w lewo nieskończoną ilość razy */
            }
            #ad-1 #grupa-chmur-1 (
            szerokość: 720px
            pozycja : bezwzględna ;
            po lewej: 0px
            }
            #ad-1 #grupa-chmury-2 (
            szerokość: 720px
            pozycja : bezwzględna ;
            lewy : 720px ;
            }
            #ad-1 .chmura-1 (
            szerokość: 172px
            wysokość : 121px ;
            obraz w tle : url (../images/ad-1 /cloud-1 .png) ;
            pozycja : bezwzględna ;
            góra : 10px ;
            lewy : 40px ;
            }
            #ad-1 .chmura-2 (
            szerokość : 121px ;
            wysokość: 75px
            obraz w tle : url (../images/ad-1 /cloud-2 .png) ;
            pozycja : bezwzględna ;
            góra : -25px ;
            po lewej: 300px
            }
            #ad-1 .chmura-3 (
            szerokość : 132px ;
            wysokość: 105px
            obraz w tle : url (../images/ad-1 /cloud-3 .png) ;
            pozycja : bezwzględna ;
            góra : -5px ;
            lewy : 530px ;
            }

            Uff! Było tu dużo kodu CSS. Ale najciekawsze jest dalej!

            Animacja

            Pamiętaj: do tego momentu nie było żadnej animacji. Gdybyś teraz obejrzał baner, zobaczyłbyś coś, co wyświetliłaby nawet stara przeglądarka - statyczna reklama. ZTerazfaktycznie stworzymy animację, którą już wywołaliśmy w naszym kodzie CSS.

            Teraz, gdy nasz baner dobrze się wyświetla, urozmaicmy tę statyczną reklamę! Przejdźmy od razu do kodu - w komentarzach opowiem co się wydarzy:

            Wniosek

            W trakcie tego samouczka poznaliśmy kluczowe punkty tworzenia animacji z obsługą starszych przeglądarek:

            1. Elementy potomne dziedziczą animację swojego rodzica oprócz własnej animacji. Możemy to wykorzystać do tworzenia bardziej złożonych animacji.
            2. Do stylizacji naszych reklam musimy używać bardzo konkretnych selektorów, aby nasze reklamy nie były zastępowane przez inne style witryn.
            3. Musimy tak wystylizować elementy, aby jeśli nasza animacja się nie odtwarza, reklama nadal musi wyglądać przyzwoicie.
            4. Jeśli to możliwe, używaj tej samej animacji dla wielu elementów - oszczędza czas i zapobiega rozrostowi kodu.
            5. Często nazywamy Internet Explorera „przeglądarką z XVIII wieku”, jednocześnie potrząsając pięścią z obrzydzeniem i gniewem. :)

            Powodzenia w eksperymentach CSS.

            Zróbmy baner reklamowy za pomocą CSS3. Obecnie tylko przeglądarki Firefox i WebKit w pełni obsługują animacje CSS3. Wystarczy jednak, aby baner działał w innych przeglądarkach. Jednak nie oczekuj wszędzie świetnej wydajności (zwłaszcza w IE 7 i starszych), eksperymentując z najnowszymi technikami CSS.

            Notatka: Aby zaoszczędzić miejsce na stronie, wszystkie prefiksy dostawców przeglądarki zostały pominięte. Zobacz kod źródłowy.

            Znaczniki HTML

            Przyjrzyjmy się najpierw strukturze banera w HTML. W tym momencie musimy sobie wyobrazić, jak animacja będzie działać:

            Zaginiony?

            Spokojnie - pomożemy.

            Aby lepiej zrozumieć strukturę znaczników, skupmy się na łodzi:

            Z łodzią występują trzy animacje:

              Poślizg łodzi po lewej stronie. Dotyczy nieuporządkowanej listy (grupy).

              Symulacja kołysania się łodzi na wodzie. Stosowany do pozycji listy (łódź).

              Pojawienie się znaku zapytania. Stosowany do elementu div (znak zapytania).

            Jeśli spojrzysz na stronę demonstracyjną, zobaczysz, że animacja elementu listy (łodzi) wpływa również na element div wewnątrz niej (znak zapytania). Również animacja „poślizgu” dla listy nieuporządkowanej wpływa na element listy (łodzi i znak zapytania).

            W związku z tym można stwierdzić, że elementy potomne otrzymywać animacje rodziców oprócz własnych działań. Teraz pozostaje tylko wyliczyć struktury rodzic/dziecko.

            css

            Przed przystąpieniem do analizy tworzenia animacji należy podać wstecznie kompatybilny ze starszymi przeglądarkami.

            Kompatybilność wsteczna

            Zapewnimy kompatybilność wsteczną, po prostu stylizując znaczniki tak, jakby Animacje CSS w ogóle nie istnieje. Jeśli ktoś wyświetli stronę w starej przeglądarce, zobaczy normalny statyczny obraz, a nie pustą białą przestrzeń.

            Na przykład: czy powinienem używać CSS? jak ten poniżej, pojawią się problemy:

            /* NIE WŁAŚCIWIE! */ @keyframe nasza animacja zanikania ( 0% (przezroczystość:0;) 100% (przezroczystość:1;) ) div ( krycie: 0; /* Ten div jest domyślnie ukryty - ups!*/ animacja: nasza -fade-in-animation 1s 1; )

            Jeśli przeglądarka nie obsługuje animacji, element div pozostanie niewidoczny dla użytkownika.

            W ten sposób zapewniamy wsteczną kompatybilność ze starszymi przeglądarkami:

            /* TRUE */ @keyframe nasza animacja zanikania ( 0% (przezroczystość:0;) 100% (przezroczystość:1;) ) div ( krycie: 1; /* Ten element div jest domyślnie widoczny */ animacja: nasza -fade-in-animation 1s 1; )

            Teraz element div będzie renderowany, nawet jeśli animacja się nie powiedzie. I w nowoczesne przeglądarki Div zostanie najpierw ukryty podczas animacji.

            Fundacja

            Teraz wiemy, jak zapewnić kompatybilność wsteczną (co pomoże uniknąć problemów podczas pracy z rzeczywistymi projektami). Czas stworzyć bazę naszego kodu CSS.

            Musisz zapamiętać 3 punkty:

              Ponieważ baner będzie używany w różnych witrynach, sprawimy, że wszystkie nasze selektory CSS będą wyjątkowe. Wszystkie zaczynają się od #ad-1. Dlatego postaramy się uniknąć nakładania się naszego kodu i kodu strony.

              Celowo ignorujemy opóźnienie animacji w ustawieniach. Jeśli użyjesz opóźnienia animacji podczas ustawiania stylów z domyślną widocznością elementów, to struktura banera zostanie zerwana przez nagłe zniknięcie lub pojawienie się części obrazu po zakończeniu animacji. Opóźnienie animacji jest symulowane przez czas trwania i ustawienie klatki.

              Kiedy możliwe użyj jednej animacji dla kilku elementów. Dzięki temu oszczędzamy czas i zmniejszamy rozmiar kodu.

            Dlatego tworzymy podstawę naszego banera. Ustawmy to na pozycjonowanie względne, aby elementy wewnętrzne mogły być umieszczone poprawnie. Ukryje również wszystko, co wykracza poza zakres elementu:

            #ad-1 ( width: 720px; height: 300px; float: left; margin: 40px auto 0; background-image: url(../images/ad-1/background.png); background-position: center; background -repeat: no-repeat; overflow: ukryty; pozycja: względna; box-shadow: 0px 0px 6px #000; )

            Następnie ustawiamy style dla pól tekstowych i wejściowych. Nazywamy odpowiednie animacje. Musisz również upewnić się, że zawartość ma najwyższy indeks Z dla ruchomych części, aby się nie nakładały:

            #ad-1 #treść ( szerokość: 325px; float: prawo; margines: 40px; text-align: center; z-index: 4; pozycja: względna; overflow: widoczne; ) #ad-1 h2 ( font-family: "Alfa Slab One", kursywa; kolor: #137dd5; rozmiar czcionki: 50px; wysokość linii: 50px; cień tekstu: 0px 0px 4px #fff; animacja: animacja opóźnionego zanikania 7s 1 złagodzenie; /* Pojawia się h2 z fałszywym opóźnieniem */ ) #ad-1 h3 ( font-family: "Boogaloo", cursive; color: #202224; font-size: 31px; line-height: 31px; text-shadow: 0px 0px 4px #fff; animacja: opóźnione zanikanie animacji 10s 1 złagodzenie; /* Pojawienie się h3 z symulowanym opóźnieniem */ ) #ad-1 form (margines: 30px 0 0 6px; pozycja: względna; animacja: form-animation 12s 1 easy-in-out; /* Wysuń formularz, aby wprowadzić adres e-mail z symulowanym opóźnieniem */ ) #ad-1 #email ( szerokość: 158px; wysokość: 48px; float: lewo; dopełnienie: 0 20px; font-size: 16px; font-family: "Lucida Grande", sans-serif; color: #fff; text-shadow: 1px 1px 0px #a2917d; border-top-left-radius: 5px; borde r-dolny-lewy promień: 5px; obramowanie: 1px stałe #a2917d; zarys: brak; box-shadow: -1px -1px 1px #fff; kolor tła: #c7b29b; obraz w tle: liniowy-gradient(dół, rgb(216,201,185) 0%, rgb(199,178,155) 100%); ) #ad-1 #email:focus ( background-image: linear-gradient(bottom, rgb(199,178,155) 0%, rgb(199,178,155) 100%); ) #ad-1 #submit ( height: 50px; float: left ; kursor: wskaźnik; padding: 0 20px; font-size: 20px; font-family: "Boogaloo", kursywa; kolor: #137dd5; text-shadow: 1px 1px 0px #fff; border-top-right-radius: 5px ; border-bottom-right-radius: 5px; border:1px solid #bcc0c4; border-left: none; background-color: #fff; background-image: linear-gradient(bottom, rgb(245,247,249) 0%, rgb( 255,255,255) 100%); ) #ad-1 #submit:hover ( obraz tła: linear-gradient(bottom, rgb(255,255,255) 0%, rgb(255,255,255) 100%); )

            Teraz nadajmy styl wodzie i wywołajmy odpowiednią animację:

            #ad-1 ul#water( /* Jeśli potrzebujesz innej animacji wodnej, możesz ją dodać tutaj */ ) #ad-1 li#water-back ( szerokość: 1200px; wysokość: 84px; obraz w tle: url(. . /images/ad-1/water-back.png); background-repeat: repeat-x; z-index: 1; pozycja: bezwzględna; dół: 10 pikseli; lewy: -20 pikseli; animacja: water-back-animation 3 s nieskończona łatwość-in-out; /* Imitacja rozpryskujących się fal */ ) #ad-1 li#water-front ( szerokość: 1200px; wysokość: 158px; obraz w tle: url(../images/ad-1/water -front .png); background-repeat: repeat-x; z-index: 3; position: bezwzględna; bottom: -70px; left:-30px; animacja: water-front-animation 2s nieskończona łatwość wychodzenia; / * Inne animacje rozpryskujących się fal będą działać nieco szybciej, aby stworzyć efekt perspektywy. */ )

            Ustaw style dla łodzi i jej elementów. Nazywamy również odpowiednie animacje:

            #ad-1 ul#łódź ( szerokość: 249px; wysokość: 215px; z-index: 2; pozycja: bezwzględna; dół: 25px; lewy: 20px; przepełnienie: widoczne; animacja: łódź w animacji 3s 1 luz ; /* Przesuwa grupę w momencie rozpoczęcia reklamy */ ) #ad-1 ul#łódź li ( szerokość: 249px; wysokość: 215px; obraz w tle: url(../images/ad-1/łódź.png); position: absolute; bottom: 0px; left: 0px; overflow: visible; animacja: boat-animation 2s nieskończona łatwość wejścia na zewnątrz; /* Symulacja łodzi podskakującej na wodzie - podobnie do animacji używanej już na samej wodzie. */ ) #ad-1 #znak-pytania ( szerokość: 24px; wysokość: 50px; obraz w tle: url(../images/ad-1/znak-pytania.png); pozycja: bezwzględna; po prawej: 34px; góra: -30px; animacja: opóźnione-zanikanie-animacja 4s 1 łatwość-wyjście; /* zanikanie w pytajniku */ )

            Teraz stwórzmy style dla chmur. Dla nich wykorzystamy animację z efektem niekończącego się ruchu. ilustracja pokazuje istotę pomysłu:

            A oto kod CSS:

            #ad-1 #chmury ( pozycja: bezwzględna; góra: 0px; z-index: 0; animacja: animacja chmury 30s nieskończona liniowo; /* Przewiń chmury w lewo, zresetuj i powtórz */ ) #ad-1 #chmura -group -1 ( szerokość: 720px; pozycja: bezwzględna; po lewej: 0px; ) #ad-1 #cloud-group-2 ( szerokość: 720px; pozycja: bezwzględna; po lewej: 720px; ) #ad-1 .cloud-1 (szerokość: 172px; wysokość: 121px; obraz w tle: url(../images/ad-1/cloud-1.png); pozycja: bezwzględna; góra: 10px; lewa: 40px; ) #ad-1 .cloud -2 (szerokość: 121px; wysokość: 75px; obraz w tle: url(../images/ad-1/cloud-2.png); pozycja: bezwzględna; góra: -25px; lewa: 300px; ) #ad- 1. cloud-3 (szerokość: 132px; wysokość: 105px; obraz w tle: url(../images/ad-1/cloud-3.png); pozycja: bezwzględna; góra: -5px; lewa: 530px; )

            Animacje

            Przypomnienie: Od tego momentu nic nie jest animowane. Jeśli spojrzysz teraz na nasz baner, zobaczysz statyczny obraz. W tym miejscu tworzone są animacje wywołane w powyższym kodzie.

            Teraz tchnijmy życie w nasz piękny statyczny obraz:

            /* Animacja z symulowanym opóźnieniem służy do wyświetlania wielu elementów. Symulacja opóźnienia odbywa się poprzez rozpoczęcie procesu z kontynuacją 80% animacji (a nie natychmiast). W ten sposób można symulować dowolne opóźnienie: */ @keyframes opóźnione-zanikanie-animacja ( 0% (krycie: 0;) 80% (krycie: 0;) 100% (krycie: 1;) ) /* Animacja wyświetlania formularz z adres e-mail i przycisk. Używa również symulowanego opóźnienia */ @keyframes form-animation ( 0% (krycie: 0; prawy: -400px;) 90% (krycie: 0; prawy: -400px;) 95% (krycie: 0,5; prawy: 20px; ) 100% (opacity: 1; right: 0px;) ) /* Ta animacja służy do wyprowadzania łodzi z ekranu na początku filmu: */ @keyframes boat-in-animation ( 0% (po lewej: -200px;) 100% (po lewej : 20px;) ) /* Animacja chmur. Pierwsza grupa chmur zaczyna przesuwać się od środka, a druga - na prawo od ekranu. Pierwsza grupa jest powoli usuwana z ekranu, a druga pojawia się po prawej stronie. Gdy lewa grupa zostanie całkowicie ukryta, chmury szybko powrócą do swojej pierwotnej pozycji: */ @keyframes cloud-animation ( 0% (po lewej: 0px;) 99.9999% (po lewej: -720px;) 100% (po lewej: 0px;) ) ) / * Ostatnie trzy animacje są prawie takie same - różnica polega na rozmieszczeniu elementów. Naśladują plusk fal oceanu: */ @keyframes łódź-animacja (0% (dół: 0px; lewy: 0px;) 25% (dół: -2px; lewy: -2px;) 70% (dół: 2px; lewy : - 4px;) 100% (dół: -1px; lewy: 0px;) ) @keyframes water-back-animation ( 0% (dół: 10px; lewy: -20px;) 25% (dół: 8px; lewy: - 22px; ) 70% (dół: 12px; lewy: -24px;) 100% (dół: 9px; lewy: -20px;) ) @keyframes water-front-animation (0% (dół: -70px; lewy: -30px) ;) 25% (dół: -68px; lewy: -32px;) 70% (dół: -72px; lewy: -34px;) 100% (dół: -69px; lewy: -30px;) )

            Wniosek

            W tej lekcji poznaliśmy kilka kluczowych pojęć:

            1. Potomkowie otrzymują oprócz animacji swoich rodziców animacje.
            2. Tworząc baner, należy dążyć do używania unikalnego identyfikatora, aby uniknąć nakładania się kodu z istniejącym projektem CSS.
            3. Elementy powinny być pozycjonowane i stylizowane tak, jakby animacja nie była dostępna, aby zapewnić kompatybilność wsteczną.
            4. Jeśli to możliwe, powinieneś zastosować jedną animację dla kilku elementów.

            Bez wątpienia jeden z najjaśniejszych trendy 2012 jest rozwinięciem CCS3, HTML5. Dziś oferujemy duże i bardzo przydatny przegląd przykłady" 20+: Kreatywne i przydatne samouczki CSS3″ oferowane na Specky chłopiec. Wszystkie przykłady są wykonane w czyste bez JavaScript, w prezentowanych lekcjach znajduje się demo oraz gotowe pliki CSS3 do pobrania.

            Jesteśmy pewni, że te sztuczki i techniki przydadzą się programistom internetowym!

            CSS3 lekcje :

            1. Galerie zdjęć CSS3, suwaki, efekty graficzne

            Suwak 1.1.CSS3

            Trudno w to uwierzyć, ale ten suwak z różnymi efektami jest zrobiony wyłącznie na CSS3, bardzo efektowny.

            1.2. Tło strony pełnoekranowej z efektem suwaka CSS3

            Projektanci stron internetowych od dawna eksperymentują z różnymi tłem dla strony internetowej, ale jak dotąd czysty CSS niewiele mógł zrobić, musiał używać JS. Teraz CSS3 umożliwia dowolną pracę z tłem Twojej witryny - możesz mieć jedno tło z dużym zdjęciem wysokiej jakości, możesz zmieniać kilka teł z różnymi efektami, a także ze skalowalnością tła w zależności od parametrów ekranu. Ogólnie rzecz biorąc, niesamowita okazja do tworzenia kreatywnych witryn.

            1.3. Lightbox w CSS3

            Z tego samouczka dowiesz się, jak stworzyć Lightbox (Lightbox) z różnymi efektami w czystym CSS.

            1.4. Właściwości obrazu CSS3

            Ten samouczek przedstawia nowe funkcje CSS3 dotyczące właściwości obrazu, takich jak zaokrąglone narożniki, cienie i inne efekty.

            1.5. Animowany baner CSS3

            Pasek ładowania 1.6.CSS3

            1.7. Wstążka 3D z CSS3

            Zobacz demo lub pobierz pliki kodu CSS3 →

            2. Menu CSS3, nawigacja i przyciski

            2.1. Menu Apple.com w CSS3

            Samouczek tworzenia słynnego menu Apple.com w CSS3.

            2.2. Animowane menu poziome CSS3

            Prosty samouczek, który pokazuje, jak stworzyć animowane menu CSS3 z różnymi efektami.

            2.3. Animowane pionowe menu w CSS3

            2.4. Animowane przyciski CSS3

            Świetny samouczek z 7 przykładami animowanych kreatywnych przycisków.

            2.5. Kreatywne animowane menu z obrazami CSS3

            W tej lekcji wystarczy spojrzeć na 10 przedstawionych przykładów. Kiedyś tak złożone kreatywne menu powstawały wyłącznie przy pomocy JS. Imponujący!

            2.6. Efekt nawigacji po okręgu z CSS3

            Niezwykły efekt po najechaniu na wybrany element nawigacji w postaci okręgu z obrazkiem. Zwracamy uwagę!

            2.7. Rozwijane menu w CSS3

            Samouczek dotyczący implementacji prostego menu rozwijanego z podpoziomami w CSS3.

            2.8. Nawigacja CSS3 z animowanymi przejściami

            3. Różne efekty w CSS3

            3.1. Animowana podpowiedź CSS3 bez jQuery