Heim > Web-Frontend > CSS-Tutorial > 6 Kreative Ideen für CSS Link -Schwebeeffekte

6 Kreative Ideen für CSS Link -Schwebeeffekte

Christopher Nolan
Freigeben: 2025-03-14 11:28:20
Original
632 Leute haben es durchsucht

6 Kreative Ideen für CSS Link -Schwebeeffekte

Das Hinzufügen einiger CSS -Link -Schwebeffekte zu normalen Webseiten kann die visuelle Anziehungskraft von Webseiten verbessern. Wenn Sie es jemals schwer hatten, coole Schwebeffekte zu erstellen, erhalten Sie in diesem Artikel sechs CSS -Effekte, die Sie direkt für Ihr nächstes Projekt verwenden können.

Fangen wir an!

Ich weiß, dass wir sprechen :hover , aber manchmal (vielleicht nicht immer) ist es eine gute Idee, auch zu beinhalten :focus , denn nicht alle Interaktionen stammen direkt aus der Maus, sondern vielleicht ein Klick oder eine Taste.

Folie Highlight Link Hover -Effekt

Dieser Effekt wendet einen Kastenschatten für Inline -Links an, während die Farbe des Link -Textes geändert wird. Wir fügen zuerst eine umgebende Polsterung für den Link hinzu und fügen dann eine negative Marge mit demselben Wert hinzu, um zu verhindern, dass die Polsterung den Textstrom durchbricht.

Wir werden box-shadow anstelle background verwenden, da wir Übergänge vornehmen können.

 A {
  Box-Shadow: Einschub 0 0 0 https://www.php.cn/link/93ac0c50dd620dc7b88e5Fe05c70e15b54b3d6;
  Farbe: https://www.php.cn/link/93AC0C50DD620DC7B88E5FE05C70E15B54B3D6;
  Rand: 0 -.25rem;
  Polsterung: 0 .25rem;
  Übergang: Farbe .3s Easy-In-Out, Box-Shadow.
}
A: Hover {
  Box-Shadow: Einschub 100px 0 0 0 0 https://www.php.cn/link/93ac0c50dd620dc7b88e5Fe05C70E15B54B3D6;
  Farbe: weiß;
}
Nach dem Login kopieren

Textschalter Link -Schwebeeffekt

Dies ist ein interessanter Effekt, bei dem wir den verknüpften Text beim Schwebewesen mit einem anderen Text tauschen können. Über dem Text schweben, der Link -Text wird herausrutscht und neuer Text wird eingeleitet.

Demos sind leichter zu verstehen als Beschreibung.

Dieser Link -Hover -Effekt enthält viele Tricks. Die Magie ist jedoch, dass Datenattribute verwendet werden, um die Folie im Text zu definieren und sie mit content des Linked ::after Pseudo-Element aufzurufen.

Erstens HTML -Tags:

<p> Schweben <a data-replace="get a link" href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Sie einen Link</a></p>
Nach dem Login kopieren

Dies sind viele Inline -Tags, aber was Sie sehen, ist ein Absatz -Tag, das Links und Spans enthält.

Fügen wir dem Link einige grundlegende Stile hinzu. Wir müssen es mit einer relativen Positionierung zur Verfügung stellen, um die Pseudo-Elemente (absolut positioniert zu halten) zu halten, sicherzustellen, dass es als Inline-Block angezeigt wird, um die Bequemlichkeit von Boxelementstilen zu erhalten, und alle Überläufe auszublenden, die das Pseudoelement verursachen kann.

 A {
  Überlauf: versteckt;
  Position: Relativ;
  Anzeige: Inline-Block;
}
Nach dem Login kopieren

::before und ::after Pseudoelementen sollte eine absolute Positionierung haben, damit sie mit dem eigentlichen Link gestapelt sind. Wir werden sicherstellen, dass sie auf die volle Breite des Links mit Null linker Positionsversatz eingestellt sind und für einige Gleitvorgänge bereit sind.

 A :: vor,
a :: nach {
 Inhalt: '';
  Position: absolut;
  Breite: 100%;
  links: 0;
}
Nach dem Login kopieren

::after Pseudo-Element Inhalte aus dem Link-Datenattribut im HTML-Tag erhalten hat:

 a :: nach {
  Inhalt: Attr (Datenerplake);
}
Nach dem Login kopieren

Jetzt können wir transform: translate3d() , um ::after pseudo-element 200% nach rechts zu bewegen. Wir bewegen es zurück in seine ursprüngliche Position auf :hover . Übrigens können wir einen Nullversatz in die obere Richtung einstellen. Dies wird sehr wichtig sein, wenn wir ::before Pseudo-Element später wie Text unterstrichen.

 a :: nach {
  Inhalt: Attr (Datenerplake);
  Top: 0;
  Transform-Origin: 100% 50%;
  Transformation: Translate3d (200%, 0, 0);
}

A: Hover :: Nach, danach,
A: Focus :: After {
  Transformation: Translate3d (0, 0, 0);
}
Nach dem Login kopieren

Wir werden auch transform: scale() ::before pseudoelement konvertieren, um sie standardmäßig zu verbergen und dann wieder zu skalieren :hover . Wir werden es kleiner machen, zum Beispiel 2PX, und es auf den Boden stecken, so dass es wie ein unterstrichener Text aussieht, der mit ::after ausgetauscht wird.

 a :: vor {
  Hintergrund-Color: https://www.php.cn/link/93AC0C50DD620DC7B88E5FE05C70E15B54B3D6;
  Höhe: 2px;
  unten: 0;
  Transform-Origin: 100% 50%;
  Transformation: scalex (0);
}

A: Hover :: Vor, vor,
A: Focus :: vor {
  Transform-Origin: 0% 50%;
  Transformation: Scalex (1);
}
Nach dem Login kopieren

Der Rest sind Vorlieben! Wir fügen einen Übergang zum Conversion -Effekt, einige Farben usw. hinzu, um den vollen Effekt zu erzielen. Diese Werte liegen ganz bei Ihnen.

Sehen Sie sich den vollständigen CSS -Code an `` `CSS A {Überlauf: Hidden;

A :: A. ; Attr (Data-Replace); 5B54B3D6;

A: Hover :: vor {Transform-Origin: 0% 50%;

Eine Spannweite {Anzeige: Inline-Block;

A: Hover Span {Transform: Translate3D (-200%, 0, 0);

https://www.php.cn/link/93AC0C50DD620DC7B88E5FE05C70E15BHTTPS://www.php.cn/link/93AC0c50dd620dc7b888Fe05c70e15bhtps D620DC7B88E5FE05C70E15B Wachstum Hintergrundverbindungsschwebeeffekt Dies ist ein sehr beliebter Effekt, den ich an vielen Orten gesehen habe. Die Idee ist, die Pseudo-Elemente des Links als dicker Unterstrich zu verwenden, der leicht hinter dem tatsächlichen Text des Links liegt. Im schwebenden Schwebeding erweitert sich das Pseudoelement um den gesamten Inhalt.

OK, einige grundlegende Stile für Links. Wir brauchen keine Textdekoration, denn ":: vor" wird als Textdekor fungieren, gefolgt von einer relativen Positionierung, um ":: vor" bei der Abgabe einer absoluten Positionierung an Ort und Stelle zu halten.

`` `CSS
A {
  Textdekoration: Keine;
  Position: Relativ;
}
Nach dem Login kopieren

Lassen Sie uns jetzt ::before , damit seine Höhe etwa 8px beträgt, so dass es wie ein dicker Unterstrich aussieht. Wir werden ihm auch eine absolute Positionierung geben, damit wir die volle Breite des tatsächlichen Links steuern können, während wir sie ausgleichen, damit sie links und nur ein wenig von unten von unten ausgeschaltet ist, sodass es so aussieht, als würde es den Link subtil hervorheben. Sie können es genauso gut auf z-index: -1 , was sicherstellt, dass es sich hinter dem Link befindet.

 a :: vor {
  Inhalt: '';
  Hintergrundfarbe: HSLA (196, 61%, 58%, .75);
  Position: absolut;
  links: 0;
  unten: 3px;
  Breite: 100%;
  Höhe: 8px;
  Z -Index: -1;
}
Nach dem Login kopieren

sehr gut. Lassen Sie es uns aussehen wie ::before Sie wächst, wenn Sie den Link schweben. Wir müssen nur die Höhe von 3px auf 100%ändern. Beachten Sie, dass ich auch den unteren Offset auf Null wiederhergestellt habe, damit der Hintergrund beim Wachstum mehr Platz abdeckt.

 A: Hover :: vor {
  unten: 0;
  Höhe: 100%;
}
Nach dem Login kopieren

Fügen Sie nun einen leichten Übergang zu diesen Änderungen hinzu:

 a :: vor {
  Inhalt: '';
  Hintergrundfarbe: HSLA (196, 61%, 58%, .75);
  Position: absolut;
  links: 0;
  unten: 3px;
  Breite: 100%;
  Höhe: 8px;
  Z -Index: -1;
  Übergang: Alle .3s Leichterung;
}
Nach dem Login kopieren

Sehen Sie sich den vollständigen CSS -Code an `` CSS A {Textdekoration: keine;

A :: vorhanden: '' Hintergrund

A: Hover :: vor {unten: 0;

https://www.php.cn/link/93AC0C50DD620DC7B88E5FE05C70E15BHTTPS://www.php.cn/link/93AC0c50dd620dc7b888Fe05c70e15bhtps D620DC7B88E5FE05C70E15B COLOR SWAP LINK HOVER -HOVER -Effekt von rechts nach links Ich persönlich gerne diesen Effekt bei Links in der Navigation. Der Link beginnt mit einer Farbe ohne Unterstrich. Dann rutscht beim Schwebe eine neue Farbe von rechts ein und der Unterstrich gleitet von links.

Sehr ordentlich, oder? Es gibt viele Aktionen, sodass Sie möglicherweise die Auswirkungen auf die Zugänglichkeit in Betracht ziehen und alles in die bevorzugte Abfrage mit reduziertem Motion einbeziehen möchten, die durch nuanciertere Inhalte für diejenigen ersetzt werden können, die für die Bewegung empfindlich sind.

So funktioniert es. Wir bieten einen linearen Hintergrundgradienten für die Verbindung mit einem harten Stopp zwischen den beiden Farben in der Hälfte.

`` `CSS
A {
  Hintergrundbild: Linear-Gradient (
    rechts,
    https://www.php.cn/link/93AC0C50DD620DC7B88E5FE05C70E15B54B3D6,
    https://www.php.cn/link/93AC0C50DD620DC7B88E5FE05C70E15B54B3D6 50%,
    https://www.php.cn/link/93AC0C50DD620DC7B88E5FE05C70E15B000 50%
  );
}
Nach dem Login kopieren

Wir setzen den Hintergrund auf die doppelte Breite des Links oder 200% und positionieren ihn vollständig nach links. Auf diese Weise scheint es, dass nur eine der beiden Farben des Gradienten angezeigt wird.

 A {
  Hintergrundbild: Linear-Gradient (
    rechts,
    https://www.php.cn/link/93AC0C50DD620DC7B88E5FE05C70E15B54B3D6,
    https://www.php.cn/link/93AC0C50DD620DC7B88E5FE05C70E15B54B3D6 50%,
    https://www.php.cn/link/93AC0C50DD620DC7B88E5FE05C70E15B000 50%
  );
  Hintergrundgröße: 200% 100%;
  Hintergrundposition: -100%;
}
Nach dem Login kopieren

Magische Dinge passieren, wenn wir mehrere nicht standardmäßige -webkit- Präfix-Eigenschaften verwenden. Man entfernt die Farbe aus dem Text, um sie transparent zu machen. Ein anderer klammern den Hintergrundgradienten zum Text, so dass der Text tatsächlich die Farbe des Hintergrunds zu sein scheint.

 A {
  Hintergrundbild: Linear-Gradient (
    rechts,
    https://www.php.cn/link/93AC0C50DD620DC7B88E5FE05C70E15B54B3D6,
    https://www.php.cn/link/93AC0C50DD620DC7B88E5FE05C70E15B54B3D6 50%,
    https://www.php.cn/link/93AC0C50DD620DC7B88E5FE05C70E15B000 50%
  );
  Hintergrundgröße: 200% 100%;
  Hintergrundposition: -100%;
  -Webkit-Background-Clip: Text;
  -Webkit-Text-Fill-Farben: transparent;
}
Nach dem Login kopieren

Immer noch folgen? Lassen Sie uns nun einen Pseudo-Abercore des Links erstellen, indem wir ::before verwenden. Wir geben ihm die gleiche Farbe wie der verborgene Teil des Link-Hintergrundgradienten und positionieren sie unter dem tatsächlichen Link, so dass es wie eine korrekte text-decoration: underline .

 A: vor {
  Inhalt: '';
  Hintergrund: https://www.php.cn/link/93AC0C50DD620DC7B88E5FE05C70E15B54B3D6;
  Anzeige: Block;
  Position: absolut;
  unten: -3px;
  links: 0;
  Breite: 0;
  Höhe: 3px;
}
Nach dem Login kopieren

Beim Schweber rutschen wir ::before in Ort und Stelle und gehen von links ein:

 A: Hover {
 Hintergrundposition: 0;
}
Nach dem Login kopieren

Das ist etwas schwierig. Bei schwebem Umzug haben wir das verlinkte ::before Pseudo-Element auf 100% der Linkbreite festgelegt. Wenn wir dies direkt auf den Schweber des Links anwenden, werden wir den Link selbst in voller Breite machen, wodurch er sich um den Bildschirm verschiebt. Hoppla!

 A: Hover :: vor {
  Breite: 100%;
}
Nach dem Login kopieren

Fügen Sie einen kleinen Übergang hinzu, damit die Dinge reibungslos läuft:

 A {
  Hintergrundbild: Linear-Gradient (
    rechts,
    https://www.php.cn/link/93AC0C50DD620DC7B88E5FE05C70E15B54B3D6,
    https://www.php.cn/link/93AC0C50DD620DC7B88E5FE05C70E15B54B3D6 50%,
    https://www.php.cn/link/93AC0C50DD620DC7B88E5FE05C70E15B000 50%
  );
  Hintergrundgröße: 200% 100%;
  Hintergrundposition: -100%;
  -Webkit-Background-Clip: Text;
  -Webkit-Text-Fill-Farben: transparent;
  Übergang: Alle 0,3S-Leichtigkeiten;
}
Nach dem Login kopieren

Sehen Sie sich den vollständigen CSS -Code an `` `CSS a {Hintergrund-Image: linear-Gradient (zu Recht,,

54b3d6,

 <code>https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b54b3d6 50%, https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b000 50%</code>
Nach dem Login kopieren

) Hintergrund: 200%;

A: Inhalt: '';

A: Hover {Hintergrundposition: 0;

A: Hover :: vor {Breite: 100%;

https://www.php.cn/link/93AC0C50DD620DC7B88E5FE05C70E15BHTTPS://www.php.cn/link/93AC0c50dd620dc7b888Fe05c70e15bhtps D620DC7B88E5FE05C70E15B Rainbow Underline-Link-Hover-Effekt Wir können nicht "Text-Decoration-Color: Rainbow" verwenden, aber wir können ihn fälschen, indem wir lineare Gradienten und Hintergrundmagie mischen.

Zunächst löschen wir die "Textdekoration" des Links:

`` `CSS
A {
  Textdekoration: Keine;
}
Nach dem Login kopieren

Jetzt ist es ein Gradient. Wir verknüpfen zwei lineare Gradienten auf derselben background . Ein Gradient ist die anfängliche Farbe vor dem Schwebe. Der zweite ist der Regenbogen bei Hover.

 A {
  Hintergrund:
    linearer Gradient (
      rechts,
      RGBA (100, 200, 200, 1),
      RGBA (100, 200, 200, 1)
    ),
    linearer Gradient (
      rechts,
      RGBA (255, 0, 0, 1),
      RGBA (255, 0, 180, 1),
      RGBA (0, 100, 200, 1)
  );
}
Nach dem Login kopieren

Lassen Sie uns die Hintergrundgröße nur 3px hoch machen, damit sie unterstrichen ist. Wir können die Größe der beiden Gradienten gleichzeitig auf background-size einstellen, damit der anfängliche Gradient in voller Breite und 3px-Höhe ist, während der Regenbogen keine Breite hat.

 A {
  Hintergrund:
    linearer Gradient (
      rechts,
      RGBA (100, 200, 200, 1),
      RGBA (100, 200, 200, 1)
    ),
    linearer Gradient (
      rechts,
      RGBA (255, 0, 0, 1),
      RGBA (255, 0, 180, 1),
      RGBA (0, 100, 200, 1)
  );
  Hintergrundgröße: 100% 3px, 0 3px;
}
Nach dem Login kopieren

Jetzt können wir den Hintergrundgradienten gleichzeitig auf background-position positionieren, damit der erste Gradient vollständig sichtbar ist und der Regenbogen aus der Sicht gedrängt wird. Oh, stellen wir sicher, dass sich der Hintergrund bei Verwendung nicht wiederholt.

 A {
  Hintergrund:
    linearer Gradient (
      rechts,
      RGBA (100, 200, 200, 1),
      RGBA (100, 200, 200, 1)
    ),
    linearer Gradient (
      rechts,
      RGBA (255, 0, 0, 1),
      RGBA (255, 0, 180, 1),
      RGBA (0, 100, 200, 1)
  );
  Hintergrundgröße: 100% 3px, 0 3px;
  Hintergrundposition: 100%100%, 0 100%;
  Hintergrundrepeat: No-Repeat;
}
Nach dem Login kopieren

Aktualisieren wir background-size bei Schwebungen, damit der Gradienten-Swap-Wert:

 A: Hover {
  Hintergrundgröße: 0 3px, 100% 3px;
}
Nach dem Login kopieren

Machen Sie schließlich einen kleinen Übergang, wenn der Schwebewechsel auftritt:

 A {
  Hintergrund:
    linearer Gradient (
      rechts,
      RGBA (100, 200, 200, 1),
      RGBA (100, 200, 200, 1)
    ),
    linearer Gradient (
      rechts,
      RGBA (255, 0, 0, 1),
      RGBA (255, 0, 180, 1),
      RGBA (0, 100, 200, 1)
  );
  Hintergrundgröße: 100% 3px, 0 3px;
  Hintergrundposition: 100%100%, 0 100%;
  Hintergrundrepeat: No-Repeat;
  Übergang: Hintergrundgröße 400 ms;
}
Nach dem Login kopieren

Sehen!

Schweberffekt durch Unterstrichverbindung

Geoff Graham stellte diesen Effekt tatsächlich ein, als er kürzlich den coolen Schwebeffekt von Adam Argyle analysierte. In seiner Demo tritt die Hintergrundfarbe hinter dem Link von links ein und verläuft von rechts, während sich die Maus herauszieht.

Meine Version vereinfacht den Hintergrund, um eher zu unterstrichen.

 A {
  Position: Relativ;
}

a :: vor {
    Inhalt: '';
    Position: absolut;
    Breite: 100%;
    Höhe: 4px;
    Border-Radius: 4px;
    Hintergrund-Color: https://www.php.cn/link/93AC0C50DD620DC7B88E5FE05C70E15B18272F;
    unten: 0;
    links: 0;
    Transform-Ursprung: Recht;
    Transformation: scalex (0);
    Übergang: Transformation.
  }

A: Hover :: vor {
  Transform-Origin: Links;
  Transformation: Scalex (1);
}
Nach dem Login kopieren

Dies ist nicht der einzige Weg, dies zu erreichen! Hier ist eine andere Möglichkeit, wie Justin Wong den Hintergrund verwendet:

Geoff bietet auch eine Reihe von CSS -Link -Hover -Effekten an, von ordentlich bis völlig lächerlich. Einen Blick wert! Für nützliche Inhalte zu Link- und Button -Stilen finden Sie in Digitalocean von Philip Zastrows Tutorial.

Einfach Link!

Es gibt viele Optionen, um mithilfe von CSS Ihren eigenen Schweberffekt für Inline -Links zu erstellen. Sie können sogar mit diesen Effekten herumspielen und neue Effekte erzeugen. Ich hoffe, Sie haben diesen Artikel genossen. Versuchen Sie es weiter!

Das obige ist der detaillierte Inhalt von6 Kreative Ideen für CSS Link -Schwebeeffekte. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage