Trotz der Erwartung von Menschen, Veränderungen und Bewegungen auf dem Bildschirm zu erleben, verfügen CSS und HTML nur über wenige Steuerelemente, mit denen Sie Interaktivität gestalten können, und solche, die existieren, sind binär.
Ein Link ist entweder die eine oder die andere Farbe. Ein Textfeld hat entweder die eine oder andere Größe. Ein Foto ist entweder transparent oder opak. Keine Zwischenfälle von einem Zustand zum nächsten. Keine Übergänge
Dies hat dazu geführt, dass die meisten Webseiten abrupt ablaufen und sich die Elemente ungünstig verändern und verändern.
Ja, wir können DHTML verwenden und die jQuery-Bibliothek für Übergänge nutzen, aber das erfordert viel Code für etwas, das sehr einfach sein sollte.
Was wir brauchen, ist eine schnelle und einfache Möglichkeit, der Seite einfache Übergänge hinzuzufügen. In diesem Artikel finden Sie nützliche Informationen über CSS-Übergänge und deren Verwendung.
Vor ein paar Monaten steckte ich meinen Fuß in meinen Mund Dies legt nahe, dass Designer mit den neuen CSS 3-Techniken beginnen sollten die es ihnen erlauben, einige der grundlegenden Stile zu tun, für die sie sich eingesetzt haben. Das einzige Problem: keiner von ihnen arbeitete im Internet Explorer. Nein, nicht einmal IE8.
Einige Leser waren der Meinung, dass Techniken, die rund 75% der Zuschauer nicht sehen könnten, unvorsichtig waren.
Diesen Lesern sage ich: "Halten Sie Ihre Hüte fest" , denn ich werde Ihnen eine weitere neue CSS-Eigenschaft vorstellen, mit der Sie Übergänge zu jedem Element mit nur ein paar Zeilen Code hinzufügen können.
CSS-Übergänge werden derzeit in CSS Level 3 eingeführt, wurden jedoch bereits als Erweiterung von Webkit hinzugefügt. Im Moment bedeutet das, dass sie nur in Browsern funktionieren, die auf Webkit basieren, einschließlich Apple Safari und Google Chrome.
Übergänge sind seit einiger Zeit ein Teil von Webkit und sind die Grundlage für viele der coolen Dinge, die die Safari UI tun kann, die andere Browser nicht können.
Aber die W3C CSS Workgroup konnte keine Übergänge zu ihren offiziellen Spezifikationen hinzufügen. Einige Mitglieder argumentierten, dass Übergänge keine Stileigenschaften seien und besser durch eine Skriptsprache gehandhabt würden.
Aber viele Designer und Entwickler, mich eingeschlossen, argumentierten, dass dies in der Tat Stile sind - nur dynamische Stile, und nicht die traditionellen statischen Stile, an die so viele von uns gewöhnt sind.
Glücklicherweise hielt das Argument für dynamische Stile den Tag. Im vergangenen März haben Vertreter von Apple und Mozilla begonnen, die CSS-Überblendungsmodul auf die CSS Level 3-Spezifikation , ähnlich dem, was Apple bereits zu Webkit hinzugefügt hatte.
Bevor wir fortfahren, möchte ich einen Punkt hervorheben: Verlassen Sie sich niemals auf Stile für die Website-Funktionalität, wenn die Stile nicht mit dem Browser kompatibel sind (dh in allen gängigen Browsern verfügbar).
Noch einmal für diejenigen, die es verpasst haben: Verlassen Sie sich niemals auf Stile für die Website-Funktionalität, wenn die Stile nicht interoperabel sind .
Das heißt, Sie können Stile wie Übergänge als Designverbesserungen verwenden , um die Benutzererfahrung zu verbessern, ohne die Benutzerfreundlichkeit für diejenigen einzuschränken, die sie nicht sehen können. Das ist in Ordnung, solange Sie ohne die Übergänge leben können und die Benutzer ihre Aufgaben noch erledigen können.
CSS-Übergänge ersetzen nicht alle Anwendungen von DHTML, aber hier sind einige Möglichkeiten, um Ihr Design in Browsern zu verbessern, die Übergänge unterstützen, ohne es für den Rest Ihrer Zielgruppe zu zerstören.
Sie müssen diese Seite in ansehen Apple Safari 3+ oder Google Chrome um diese Übergänge zu sehen. Beide Browser sind in Mac- und PC-Varianten verfügbar.
Die offensichtlichste Verwendung für Übergänge besteht darin, Elemente hervorzuheben (ob Verknüpfungen, Tabellen, Formularfelder, Schaltflächen oder etwas anderes), wenn die Maus des Benutzers über sie hinwegfährt. Übergänge sind eine großartige Möglichkeit, der Seite ein glatteres Aussehen zu verleihen.
Beispiel 1
Reine CSS-Menüs sind leicht zu bewerkstelligen, und mit Übergängen können Sie Slide-Down- und Hervorhebungseffekte für Menüs erzielen.
Beispiel # 2
Sie können ein Objekt zwischen zwei Punkten auf der Seite verschieben und Übergänge verwenden, um seine Bewegung zu animieren.
Beispiel # 3
Klicken & Halten!
Aber warten wir eine Minute, Tex. Bevor wir in Übergänge eintauchen, müssen wir die verschiedenen Zustände verstehen, in die ein Element übergehen kann.
Zustände definieren, wie ein bestimmtes Element derzeit mit dem Benutzer oder der Seite interagiert, und sie werden in CSS mithilfe der Pseudoklassen angegeben. Wenn der Benutzer zum Beispiel über ein Element schwebt, wird das Element mit dem Element formatiert hover
Pseudo-Klasse.
Dynamische Pseudoklasse | Betroffene Elemente | Beschreibung |
:Verknüpfung | Nur Links | Nicht besuchte Links |
:hat besucht | Nur Links | Besuchte Links |
:schweben | Alle Elemente | Mauszeiger über Element |
:aktiv | Alle Elemente | Maus klickt auf Element |
:Fokus | Alle Elemente, die ausgewählt werden können | Element ist ausgewählt |
Keiner | Alle Elemente | Standardstatus aller Elemente |
Übergänge arbeiten, indem sie einen Stil über einen Zeitraum zwischen verschiedenen Elementzuständen ändern. Zum Beispiel wird der Farbwert des Standardzustands eines Elements die Zwischenfarben im Spektrum durchlaufen, bevor er als Farbwert für den Schwebezustand erscheint.
Betrachten wir einen einfachen Übergang von einer Farbe zu einer anderen, wenn der Benutzer über eine Verknüpfung schwebt. Wie jede andere CSS-Eigenschaft werden Übergänge direkt dem Selektor hinzugefügt, auf den sie angewendet werden sollen. Die Eigenschaft kann dann einen der folgenden vier Werte annehmen.
CSS-Eigenschaft
Die Eigenschaft, die geändert werden soll (z. B. Farbe). Eine Liste aller CSS-Eigenschaften, die umgestellt werden können, finden Sie in der folgenden Tabelle.
Dauer
Wie lange der Übergang dauert, in der Regel in Sekunden (z. B. .25s
).
Timing-Funktion
Ermöglicht Ihnen zu steuern, wie die Dauer zeitlich festgelegt wird. Anstatt eine einfache lineare Zählung zu verwenden, können Sie den Übergang beschleunigen oder verlangsamen oder sogar einen Schlag oder eine Zählung angeben (z. B. linear
). Mehr dazu später in dem Artikel.
Verzögern
Wie lange zwischen der Aktion und dem Beginn des Übergangs zu warten ist, normalerweise in Sekunden ausgedrückt (z. B. .1s
). Dieser Wert kann weggelassen werden, wenn Sie keine Verzögerung wünschen.
Da die Übergangseigenschaft als Webkit - Erweiterung begann, müssen wir sowohl die transition
und -webkit-transition
Eigenschaften für die Abwärtskompatibilität.
Lassen Sie uns zuerst diese beiden Eigenschaften hinzufügen :hover
Pseudoklasse:
[css]
a: schweben {
Farbe Rot;
-webkit-Übergang: Farbe .25s linear;
Übergang: Farbe .25s linear;
}
[/ css]
Nun, wenn eine Verbindung überschwebt, anstatt von Blau zu Rot zu springen, wird sie für eine viertel Sekunde durch die Zwischenfarben übergehen.
Natürlich möchten wir auch zurück zur Standard-Linkfarbe wechseln, also fügen wir einen Übergang zum. Hinzu :link
(und wahrscheinlich :visited
) Pseudo-Klassen, mit nur einer sehr kurzen Verzögerung (ein Zehntel einer Sekunde), bevor es verblasst:
[css]
a: link, a: besucht {
Farbe blau;
-webkit-Übergang: Farbe .25s linear .1s;
Übergang: Farbe .25s linear .1s;
}
[/ css]
Da eine Transition eine CSS-Eigenschaft ist, werden beim Hinzufügen mehrerer Instanzen der Übergangseigenschaft in derselben Regel die vorherigen überschrieben und nicht hinzugefügt. In der folgenden Regel wäre der einzige Übergang die Hintergrundfarbe:
[css]
a: schweben {
Farbe Rot;
Hintergrundfarbe: rgb (235,235,185);
-webkit-Übergang: Farbe .25s linear;
Übergang: Farbe .25s linear;
Übergang: Hintergrundfarbe .15s linear .1;
}
[/ css]
Mehrere Übergänge werden als kommagetrennte Liste in derselben Transitionseigenschaftsdefinition hinzugefügt:
[css]
a: schweben {
Farbe Rot;
Hintergrundfarbe: rgb (235,235,185);
-webkit-Übergang: Farbe .25s linear, Hintergrundfarbe .15s linear .1s;
Übergang: Farbe .25s linear, Hintergrundfarbe .15s linear .1s;
}
[/ css]
Dies erzeugt sowohl einen Farb- als auch einen Hintergrund-Farbübergang.
Fast jede CSS-Eigenschaft, die eine Farb-, Längen- oder Positionskomponente aufweist, einschließlich vieler der neuen CSS 3-Eigenschaften, kann einen Übergang erhalten. Eine bemerkenswerte Ausnahme scheint Box-Shadow zu sein.
Direkt aus der Transitions-Spezifikation des W3C folgt hier eine Liste von CSS-Eigenschaften, die zusammen mit den transformierten Aspekten einen Übergang erhalten können. Ich habe einige der nützlicheren Eigenschaften hervorgehoben.
CSS-Eigenschaft | Was ändert sich |
Hintergrundfarbe | Farbe |
Hintergrundbild | Nur Farbverläufe |
Hintergrund-Position | Prozentsatz, Länge |
Rand-Grundfarbe | Farbe |
Grenze-unten-Breite | Länge |
Randfarbe | Farbe |
Grenze-Linke-Farbe | Farbe |
Grenze-links-Breite | Länge |
Rand-rechts-Farbe | Farbe |
Rand-rechts-Breite | Länge |
Randabstand | Länge |
Rand-Top-Farbe | Farbe |
Grenze-Oben-Breite | Länge |
Rahmenbreite | Länge |
Unterseite | Länge, Prozent |
Farbe | Farbe |
Ernte | Rechteck |
Schriftgröße | Länge, Prozent |
Schriftgewicht | Nummer |
Gitter-* | Verschiedene |
Höhe | Länge, Prozent |
links | Länge, Prozent |
Buchstaben-Abstand | Länge |
Zeilenhöhe | Anzahl, Länge, Prozent |
Rand-Boden | Länge |
Rand links | Länge |
Rand rechts | Länge |
Rand oben | Länge |
maximale Höhe | Länge, Prozent |
maximale Breite | Länge, Prozent |
Min-Höhe | Länge, Prozent |
minimale Breite | Länge, Prozent |
Opazität | Nummer |
Umrissfarbe | Farbe |
Umriss-Offset | Ganze Zahl |
Umriss-Breite | Länge |
Füll-Unterseite | Länge |
Padding-links | Länge |
Polster rechts | Länge |
padding-top | Länge |
Recht | Länge, Prozent |
Texteinzug | Länge, Prozent |
Text-Schatten | Schatten |
oben | Länge, Prozent |
vertikal ausrichten | Schlüsselwörter, Länge, Prozentsatz |
Sichtweite | Sichtweite |
Breite | Länge, Prozent |
Wortabstand | Länge, Prozent |
Z-Index | Ganze Zahl |
Zoomen | Nummer |
Mit Übergängen können Sie die Zählrate variieren, am Anfang langsamer zählen und am Ende beschleunigen, oder umgekehrt. CSS-Übergänge enthalten fünf Schlüsselwörter für das Übergangstiming und ermöglichen die Angabe von Werten für Ihre eigene Timing-Kurve.
Name | Wie es funktioniert |
kubisch-bezier (x1, y1, x2, y2) | X- und Y-Werte liegen zwischen 0 und 1, um die Form einer Bezierkurve zu definieren, die für die Zeitfunktion verwendet wird. |
linear | Konstante Geschwindigkeit |
Leichtigkeit | Allmähliche Verlangsamung |
Ease-in | Beschleunigen |
Erleichterung | Langsamer |
Leichtigkeit-in-out | Beschleunigen und dann verlangsamen |
Übergänge werden für alle Websites schnell zum Standardbetriebsverfahren und verbessern das Feedback der Benutzeroberfläche.
Um ubiquitäre Übergänge über die gesamte Website hinzuzufügen, besteht eine Möglichkeit darin, einen Übergang zum universellen Selektor hinzuzufügen, ähnlich einem CSS-Reset. Dies wendet einen Standardübergang auf alle Elemente auf der Seite an, sodass Sie einen konsistenten Übergang beibehalten können:
[css]
*: link, *: besucht, *: schweben, *: aktiv, *: Fokus {
-Webkit-Übergang:
Farbe .25s linear,
Hintergrundfarbe .25s linear,
Randfarbe .25s linear;
Übergang:
Farbe .25s linear,
Hintergrundfarbe .25s linear,
Randfarbe .25s linear;
}
[/ css]
Ein Argument gegen einen universellen Übergang und sogar gegen die Verwendung des universellen Selektors für CSS-Resets im Allgemeinen ist, dass das Anwenden eines Stils auf jedes Element auf der Seite das Seitenrendern verlangsamen kann. Ich habe jedoch nie einen Beweis dafür gefunden, dass dies der Fall ist. Wer weiß anders?
Jason Cranford Teague ist Autor von mehr als 13 Büchern über digitale Medien, einschließlich Sprechen in Stilen: Die Grundlagen von CSS für Webdesigner . Weitere Informationen zu CSS und Web-Typografie finden Sie in Jasons neuem Buch Flüssige Netz-Typografie . Folge Jason auf Twitter: @jaspeaking .