Startseite » Codierung » Nur CSS-Überlagerungen mit Box-Shadow-Effekt

    Nur CSS-Überlagerungen mit Box-Shadow-Effekt

    Inhaltsüberlagerungen sind ein wichtiger Teil des modernen Webdesigns. Sie helfen dir ein Element ausblenden auf einer Webseite und später - mit Zustimmung des Benutzers - Zeige es, und zusätzliche Informationen oder Steuerelemente anzeigen, z. B. Tasten dahinter.

    Eine typische Überlagerung ist halbtransparent, mit einer feste Hintergrundfarbe (normalerweise schwarz), und es gibt Text oder Schaltflächen, mit denen Benutzer sehen oder interagieren können. Nachdem die Interaktion (Klicken oder Hovering) erfolgt ist, wird die Überlagerung angezeigt wird entfernt und enthüllt den Inhalt darunter.

    In diesem Artikel erfahren Sie, wie farbige Überlagerung zu Bildern hinzufügen mit reinem CSS. Das Endergebnis sehen Sie unten in der Demo. Bewegen Sie den Mauszeiger auf die Bilder, um die Pokemons anzuzeigen. Obwohl in diesem Beitrag Bilder behandelt werden, kann die Technik, die es präsentiert, sicher auch auf andere Inhaltstypen (z. B. Textblöcke) angewendet werden.

    Vermeiden Sie das Hinzufügen zusätzlicher HTML-Elemente

    Überlagerungen werden häufig von erstellt Positionierung eines zusätzlichen HTML-Elements mit einem Opazität Wert kleiner als 1 direkt über dem abzudeckenden Element. Das Problem ist, dass diese Technik die Verwendung einer extra Element (oder Pseudoelement) für die Überlagerung.

    Wenn Sie kein HTML-Pedant sind, ist es wahrscheinlich keine große Sache, ein zusätzliches Element für die Überlagerung zu haben, da dies höchstwahrscheinlich die Bandbreite eines Netzwerks nicht so stark belastet. Jedoch mit trennen Stilregeln für Elemente und deren Überlagerungen beeinträchtigen die Lesbarkeit und Wartbarkeit von CSS.

    Um Ihren Code in Ordnung zu halten und Ihre HTML-Gliederung nicht durcheinander zu bringen, empfiehlt es sich, eine reine CSS-Lösung zu verwenden.

    Überlagerung erstellen mit Box Schatten

    Wie können Sie also eine reine CSS-Überlagerung erstellen? Mit der Hilfe des Box Schatten CSS-Eigenschaft Der Box-Shadow ist perfekt für diesen Job, da ist doch ein Overlay ein dunkler Schatten wirft über ein Element?

    Der Box-Schatten hat einen Eigenschaftswert, der aufgerufen wird Einsatz, wodurch der Schatten erscheint innerhalb des Rahmens der Box.

    Ein Inset-Box-Schatten mit einer Schattengröße, die die Hälfte oder mehr als die Hälfte der Breite und Höhe des Elements hat, erzeugt einen Schatten deckt den ab ganz Element.

     .Kasten Breite: 200px; Höhe: 200px; Box-Schatten: grün 0 0 0 100px Einfügung;  
    Feldschatten, der das gesamte Element bedeckt

    Da in der Regel überlagert habe etwas Transparenz, Sie müssen es auch zum Box-Schatten hinzufügen. Dies kann mit der rgba () Funktion für Schattenfarbe.

    Das rgb Ein Teil des RGB-Kanals repräsentiert die Kanalwerte für Rot, Grün und Blau, während ein repräsentiert die Alphakanal, welches ist verantwortlich für die transparenz.

    Für den Alphakanal erzeugt ein Wert von 1 eine undurchsichtige Farbe, während 0 eine a erzeugt vollständig transparente Farbe.

    Durch Zuweisen eines Werts zwischen 0 und 1 für den Alphakanal des rgba-Farbwerts des Boxschattens können Sie dies tun Erstellen Sie eine semi-transparente Auflage.

    Erstellen Sie den Code für die Demo

    Unsere Demo zeigt die Bilder und Namen der verschiedenen Pokemons. Hier erstellen wir nur den Code für Bulbasaur, das erste Pokemon in der Demo, da die anderen auf dieselbe Weise erstellt werden (auf Codepen können Sie auch den Code für sie überprüfen)..

    HTML

    Für das HTML brauchen wir nur eine Box erstellen dem fügen wir alles andere mit CSS hinzu.

    CSS

    In der CSS unten, die .Pokémon Elemente zeigen die Pokemon-Bilder und die .pokemon :: nach Pseudoelemente tragen den Namen des Pokemons.

    Seit der Box Schatten Eigentum kann mehrere Werte annehmen damit rendern Sie mehrere Schatten, Neben dem Überlagerungsschatten fügte ich noch weitere Schatten hinzu .Pokémon und .Pokemon: schweben Elemente für die Ästhetik.

     / * pokemon Bilder * / .pokemon width: 200px; Höhe: 200px; / * zentriere den Inhalt mit der Flexbox * / display: flex; Inhalt rechtfertigen: Mitte; Ausrichten-Elemente: Mitte; / * overlay * / box-shadow: 0 0 0 100px-Einfügung, 0 0 5px grau; / * Hover-Out-Übergang * / Übergang: Box-Schatten 1s;  / * Pokemon-Namen * / .pokemon :: after width: 80%; Höhe: 80%; Bildschirmsperre; schriftart: 16pt 'bookman old syle'; Farbe weiß; Rand: 2px fest; Text ausrichten: Mitte; / * zentriere den Inhalt mit der Flexbox * / display: flex; Inhalt rechtfertigen: Mitte; Ausrichten-Elemente: Mitte; / * hover out Übergang * / Übergang: Deckkraft 1s, 5s;  / * enthüllen Pokemon-Bild auf Hover * / .pokemon: Hover Übergang: Box-Schatten 1s; Box-Schatten: 0 0 0 5px-Einsatz, 0 0 5px-Grau, 0 0 10px-Graueinsatz;  / * Pokemon-Name auf Hover verstecken * / .pokemon: Hover :: after Übergang: Deckkraft .5s; Deckkraft: 0;  

    Wenn der .Pokémon Elemente werden schwebend angezeigt, ihr Box-Schatten muss geändert werden, um das dahinter liegende Bild anzuzeigen.

    Sie können das sehen .Pokemon: schweben Selektor erhält einen neuen Boxschatten, der die Überlagerung entfernt, und die .pokemon: schweben :: nach Selector blendet den Namen des Pokemons mit dem Opazität Eigentum.

    Sie haben vielleicht auch das bemerkt Fehlen von Farbwerten in der überlagerten Box-Schatten in der .Pokémon und .Pokemon: schweben Stilregeln. Die Overlay-Box-Schattenfarbe der einzelnen Pokemons muss angegeben werden in ihren eigenen Stilregeln, da sie sich alle voneinander unterscheiden.

    Wie Box Schatten hat kein langatmiges Eigentum, Sie können die Schattenfarbe nicht einstellen individuell mit so etwas, Box-Schattenfarbe; stattdessen benutzen wir die Farbe Eigentum.

    Standardmäßig, wenn Sie einen Wert für angeben Farbe Eigenschaft ist dieser Wert gilt für den Rand, die Kontur und die Farben des Schattenkastens auch. Sie können also einfach die Farbe Eigenschaft, um Box-Schatten Farbe hinzuzufügen.

     #bulbasaur Hintergrundbild: URL (https://assets.hongkiat.com/uploads/css-only-overlays-box-shadow/bulbasaur.jpg); / * Farbwert für Boxschattenfarbe * / Farbe: rgba (71, 121, 94, 0,9);  #bulbasaur :: after / * pokemon name * / content: 'Bulbasaur';  

    Die Farbe des Überlagerungsschattens verwendet das oben genannte rgba () Funktion mit 0,9 für den Alpha-Wert, um die Überlagerung transparent zu machen.

    Neben der Farbe des Overlay-Box-Shadows fügt das obige CSS auch die Regeln hinzu, die für jedes Pokemon individuell sind - das Bild als Hintergrundbild und der Name.

    Und das ist alles, wir sind bereit mit unserer CSS-only-Farbüberlagerung. Sehen Sie sich den Code aller Pokemons unten im Stift an.