Technologiczne, Gadżety, Telefony Komórkowe, Pobieranie Aplikacji!

Przejścia CSS 101 | WDD

Przejścia CSS 101 

</center></p>
<div class='code-block code-block-2' style='margin: 8px auto; text-align: center; display: block; clear: both;'>

<style>
.ai-rotate {position: relative;}
.ai-rotate-hidden {visibility: hidden;}
.ai-rotate-hidden-2 {position: absolute; top: 0; left: 0; width: 100%; height: 100%;}
.ai-list-data, .ai-ip-data, .ai-filter-check, .ai-fallback, .ai-list-block, .ai-list-block-ip, .ai-list-block-filter {visibility: hidden; position: absolute; width: 50%; height: 1px; top: -1000px; z-index: -9999; margin: 0px!important;}
.ai-list-data, .ai-ip-data, .ai-filter-check, .ai-fallback {min-width: 1px;}
</style>
<div class='ai-rotate ai-unprocessed ai-timed-rotation ai-2-2' data-info='WyIyLTIiLDJd' style='position: relative;'>
<div class='ai-rotate-option' style='visibility: hidden;' data-index=

Mimo że ludzie oczekują zmian i ruchu na ekranie, CSS I HTML mają niewiele elementów sterujących umożliwiających projektowanie interaktywności, a te, które istnieją, są binarne.

Link jest albo w jednym kolorze, albo w innym. Pole tekstowe jest albo w jednym rozmiarze, albo w innym. Zdjęcie jest albo przezroczyste, albo nieprzezroczyste. Żadnych pośrednich stanów między jednym a drugim. NIE przejścia.

W rezultacie większość stron internetowych sprawia wrażenie nieregularnych, a ich elementy zmieniają się i przesuwają w sposób niespójny.

Tak, możemy użyć języka DHTML i biblioteki jQuery do przejść, ale wymagałoby to napisania dużej ilości kodu jak na coś, co powinno być bardzo proste.

Potrzebujemy szybkiego i łatwego sposobu na dodanie prostych przejść do strony, a w tym artykule znajdziesz przydatne informacje na ten temat Przejścia CSS i jak z nich korzystać.

Kilka miesięcy temu włożyłem nogę w usta, sugerując, że projektanci powinni zacząć używać nowych technik CSS 3, które pozwalają im na wykonanie niektórych podstawowych stylów, o które tak zabiegali. Jedyny problem: żadna z nich nie działała w Internet Explorerze. Nie, nawet IE8.

Niektórzy czytelnicy uznali, że proponowanie technik, których około 75% odbiorców nie będzie w stanie dostrzec, jest nierozsądne.

Do tych czytelników mówię: Trzymajcie mocno kapeluszeponieważ zamierzam przedstawić Wam kolejną nową właściwość CSS, która umożliwia dodawanie przejść do dowolnego elementu przy użyciu zaledwie kilku linijek kodu.

Przejścia CSS są wprowadzane właśnie teraz w CSS Level 3, ale zostały już dodane jako rozszerzenie do Webkit. Obecnie oznacza to, że działają tylko w przeglądarkach opartych na Webkit, w tym Apple Safari i Google Chrome.

Skąd się biorą przejścia CSS

Przejścia są już od pewnego czasu częścią Webkit i stanowią podstawę wielu fajnych funkcji interfejsu użytkownika Safari, których nie potrafią inne przeglądarki.

Jednak grupa robocza W3C CSS sprzeciwiła się dodaniu przejść do swoich oficjalnych specyfikacji. Niektórzy członkowie grupy argumentowali, że przejścia nie są właściwościami stylu i lepiej byłoby je obsługiwać za pomocą języka skryptowego.

Jednak wielu projektantów i programistów, łącznie ze mną, twierdziło, że są to w rzeczywistości style — tylko dynamiczny stylów, w przeciwieństwie do tradycyjnych, statycznych stylów, do których wielu z nas jest przyzwyczajonych.

Na szczęście argument za dynamicznymi stylami przetrwał ten dzień. W marcu ubiegłego roku przedstawiciele Apple i Mozilli zaczęli dodawać Moduł CSS Transitions do specyfikacji CSS Level 3ściśle wzorowany na tym, co Apple dodało już do Webkita.

Krótka uwaga na temat udoskonaleń projektu

Zanim przejdziemy dalej, chciałbym podkreślić jedną rzecz: nigdy nie należy opierać funkcjonalności witryny na stylach, jeśli nie są one kompatybilne z przeglądarką (czyli nie są dostępne we wszystkich popularnych przeglądarkach).

Jeszcze raz dla tych, którzy przegapili: nigdy nie polegaj na stylach w zakresie funkcjonalności witryny, jeśli style nie są kompatybilne z przeglądarką.

Powiedziawszy to, możesz używać stylów, takich jak przejścia, jako ulepszenia projektu aby poprawić doświadczenie użytkownika, nie poświęcając użyteczności dla tych, którzy ich nie widzą. Jest to w porządku, o ile można żyć bez przejść, a użytkownicy nadal mogą wykonywać swoje zadania.

Najpierw kilka pomysłów na przejście

Przejścia CSS nie zastąpią wszystkich zastosowań języka DHTML, ale oto kilka sposobów na ulepszenie projektu w przeglądarkach obsługujących przejścia, bez psucia odbioru dla pozostałych odbiorców.

Będziesz musiał wyświetlić tę stronę w Apple Safari 3+ Lub Google Chrome aby zobaczyć, jak te przejścia działają. Obie przeglądarki są dostępne w wersjach Mac i PC.

Przewroty

Najbardziej oczywistym zastosowaniem przejść jest wyróżnianie elementów (czy to linków, tabel, pól formularzy, przycisków czy czegoś innego), gdy użytkownik najedzie na nie myszką. Przejścia to świetny sposób na nadanie stronie płynniejszego wyglądu.

Przykład 1

Menu rozwijane

Łatwe do utworzenia jest tworzenie menu w czystym CSS, a przejścia pozwalają na dodanie do menu efektów przesuwania i podświetlania.

Przykład nr 2

Animacja

Możesz przenosić obiekt między dwoma punktami na stronie i używać przejść, aby animować jego ruch.

Przykład nr 3

Kliknij i przytrzymaj!

Przejścia, stany i działania

Ale zaczekaj chwilę, Tex. Zanim zagłębimy się w przejścia, musimy zrozumieć różne stany, do których może przejść element.

Stany definiują, jak konkretny element obecnie wchodzi w interakcję z użytkownikiem lub stroną, i są określone w CSS za pomocą pseudoklas. Na przykład, gdy użytkownik najedzie kursorem na element, ten element zostanie wystylizowany za pomocą pseudoklasy hover.

Dynamiczna pseudoklasa

Elementy dotknięte

Opis

:połączyć

Tylko linki

Nieodwiedzone linki

:odwiedził

Tylko linki

Odwiedzone linki

:unosić się

Wszystkie elementy

Kursor myszy nad elementem

:aktywny

Wszystkie elementy

Element kliknięć myszą

:centrum

Wszystkie elementy, które można wybrać

Element jest zaznaczony

Nic

Wszystkie elementy

Domyślny stan wszystkich elementów

Przejścia działają poprzez zmianę stylu w okresie czasu pomiędzy różnymi stanami elementu. Na przykład wartość koloru domyślnego stanu elementu przejdzie przez kolory pośrednie w spektrum, zanim pojawi się jako wartość koloru dla stanu najechania kursorem.

Proste przejście

Rozważmy proste przejście z jednego koloru do drugiego, gdy użytkownik najedzie kursorem na link. Podobnie jak każda inna właściwość CSS, przejścia są dodawane bezpośrednio do selektora, do którego mają być zastosowane. Właściwość może następnie przyjąć jedną z następujących czterech wartości.

Właściwość CSS
Właściwość, która ma zostać zmieniona (na przykład kolor). Zobacz poniższą tabelę, aby uzyskać listę wszystkich właściwości CSS, które można przekształcić.

Czas trwania
Jak długo będzie trwało przejście, zazwyczaj w sekundach (na przykład 0,25 s).

Funkcja pomiaru czasu
Umożliwia kontrolowanie, jak czas trwania jest mierzony. Zamiast używać prostego liniowego odliczania, możesz przyspieszyć lub spowolnić przejście, a nawet określić uderzenie lub odliczanie (na przykład liniowe). Więcej na ten temat w dalszej części artykułu.

Opóźnienie
Jak długo czekać między akcją a początkiem przejścia, zwykle wyrażony w sekundach (np. .1s). Wartość tę można pominąć, jeśli nie chcesz opóźnienia.

Ponieważ właściwość transition pierwotnie była rozszerzeniem Webkit, musimy uwzględnić zarówno właściwość transition, jak i -webkit-transition, aby zachować wsteczną kompatybilność.

Najpierw dodajmy obie te właściwości do pseudoklasy :hover:

[css]

a:hover { kolor: czerwony; -webkit-transition: kolor .25s liniowy; transition: kolor .25s liniowy; }
[/css]

Teraz po najechaniu kursorem na link zamiast zmieniać jego kolor z niebieskiego na czerwony, będzie on przez ćwierć sekundy przechodził pomiędzy kolorami pośrednimi.

Oczywiście, chcemy także powrócić do domyślnego koloru łącza, więc dodamy przejście do pseudoklas :link (i prawdopodobnie :visited), z bardzo krótkim opóźnieniem (jedną dziesiątą sekundy) przed jego zniknięciem:

[css]

a:link, a:visited { kolor: niebieski; -webkit-transition: kolor .25s liniowy .1s; przejście: kolor .25s liniowy .1s; }
[/css]

Dodawanie wielu przejść

Ponieważ przejście jest właściwością CSS, jeśli dodasz wiele wystąpień właściwości przejścia w tej samej regule, to ostatnie z nich zastąpi poprzednie, zamiast je dodawać. Tak więc w poniższej regule jedynym przejściem będzie kolor tła:

[css]

a:hover { kolor: czerwony; kolor-tła: rgb(235,235,185); -webkit-transition: kolor .25s liniowy; przejście: kolor .25s liniowy; przejście: kolor-tła .15s liniowy .1; }
[/css]

Wiele przejść dodawanych jest jako lista rozdzielona przecinkami w tej samej definicji właściwości przejścia:

[css]

a:hover { kolor: czerwony; kolor-tła: rgb(235,235,185); -webkit-transition: kolor .25s liniowy, kolor-tła .15s liniowy .1s; przejście: kolor .25s liniowy, kolor-tła .15s liniowy .1s; }
[/css]

Spowoduje to utworzenie przejścia między kolorami i kolorami tła.

Co można zmienić?

Prawie każda właściwość CSS, która ma komponent koloru, długości lub pozycji, w tym wiele nowych właściwości CSS 3, może otrzymać przejście. Jednym godnym uwagi wyjątkiem wydaje się być box-shadow.

Prosto ze specyfikacji Transitions W3C, oto lista właściwości CSS, którym można nadać przejście, wraz z aspektami, które są przekształcane. Podkreśliłem kilka bardziej przydatnych właściwości.

Właściwość CSS

Jakie zmiany

kolor tła

Kolor

zdjęcie w tle

Tylko gradienty

tło-pozycja

Procent, długość

kolor-dolnej-obramowania

Kolor

szerokość-dolnej-ramki

Długość

kolor ramki

Kolor

kolor-lewej-obramowania

Kolor

szerokość-lewej-ramki

Długość

obramowanie-prawe-kolor

Kolor

obramowanie-prawe-szerokość

Długość

odstępy między obramowaniami

Długość

kolor-góry-obramowania

Kolor

szerokość-góry-obramowania

Długość

szerokość granicy

Długość

spód

Długość, procent

kolor

Kolor

przyciąć

Prostokąt

rozmiar czcionki

Długość, procent

grubość czcionki

Numer

siatka-*

Różny

wysokość

Długość, procent

lewy

Długość, procent

odstępy między literami

Długość

Wysokość linii

Liczba, długość, procent

margines-dolny

Długość

margines lewy

Długość

margines prawy

Długość

margines-górny

Długość

maksymalna wysokość

Długość, procent

maksymalna szerokość

Długość, procent

minimalna wysokość

Długość, procent

minimalna szerokość

Długość, procent

nieprzezroczystość

Numer

kolor konturu

Kolor

przesunięcie konturu

Liczba całkowita

szerokość konturu

Długość

wyściółka-dół

Długość

wypełnienie-lewe

Długość

wypełnienie-prawe

Długość

wyściółka-górna

Długość

Prawidłowy

Długość, procent

wcięcie tekstu

Długość, procent

cień tekstu

Cień

szczyt

Długość, procent

wyrównanie pionowe

Słowa kluczowe, długość, procent

widoczność

Widoczność

szerokość

Długość, procent

odstępy między wyrazami

Długość, procent

indeks z

Liczba całkowita

Powiększenie

Numer

Czas przejścia i opóźnienie

Dzięki przejściom możesz zmieniać tempo liczenia, licząc wolniej na początku i szybciej na końcu, odwrotnie lub cokolwiek pomiędzy. Przejścia CSS zawierają pięć słów kluczowych dla czasu przejścia i pozwalają określić wartości dla własnej krzywej czasu.

Nazwa

Jak to działa

sześcienny-Bezier(x1, y1, x2, y2)

Wartości X i Y mieszczą się w przedziale od 0 do 1 i określają kształt krzywej Béziera używanej do określania czasu.

liniowy

Stała prędkość

łatwość

Stopniowe spowolnienie

ułatwienie wejścia

Przyśpieszyć

wychodzenie

Kierowco zwolnij

łatwe wejście i wyjście

Przyspiesz, a potem zwolnij

Uniwersalna transformacja?

Przejścia staną się wkrótce standardową procedurą operacyjną dla wszystkich witryn internetowych, poprawiając odbiór interfejsu użytkownika.

Aby dodać wszechobecne przejścia w całej witrynie, jedną z opcji jest dodanie przejścia do uniwersalnego selektora, podobnego do resetowania CSS. Stosuje to domyślne przejście do wszystkich elementów na stronie, umożliwiając zachowanie spójnego przejścia:

[css]

*:link, *:visited, *:hover, *:active, *:focus { -webkit-transition: kolor .25s liniowy, kolor tła .25s liniowy, kolor obramowania .25s liniowy; transition: kolor .25s liniowy, kolor tła .25s liniowy, kolor obramowania .25s liniowy; }
[/css]

Jednym z argumentów przeciwko uniwersalnemu przejściu, a w zasadzie przeciwko używaniu uniwersalnego selektora do resetowania CSS w ogóle, jest to, że stosowanie stylu do każdy element na stronie może spowolnić renderowanie strony. Jednak nigdy nie znalazłem żadnych dowodów na to, że tak jest. Ktoś wie coś innego?

Jason Cranford Teague jest autorem ponad 13 książek na temat mediów cyfrowych, w tym Mówienie w stylach: podstawy CSS dla projektantów stron internetowychAby uzyskać więcej informacji na temat CSS i typografii internetowej, zapoznaj się z nową książką Jasona, Płynna typografia internetowa. Obserwuj Jasona na Twitterze: @jasonspeaking.

Najnowszy: