Domovská » Kódování » Jak překrýt CSS-efekty Efekt s Box-Shadow

    Jak překrýt CSS-efekty Efekt s Box-Shadow

    Překryvy obsahu jsou prominentní součástí moderního web designu. Pomáhají vám skrýt prvek na webové stránce a později - se souhlasem uživatele - odhalit, a zobrazit další informace nebo ovládací prvky, například tlačítka za ním.

    Typickým překrytím je poloprůhledný, s plná barva pozadí (obvykle černá) a je na něm nějaký text nebo tlačítka, na kterých mohou uživatelé vidět nebo s nimi pracovat. Po interakci (klepnutím nebo vznášením) dojde k překrytí odstraní a odhalí obsah pod ním.

    V tomto článku se podíváme, jak na to přidejte k obrázkům barevné překrytí pomocí čistého CSS. Konečný výsledek můžete vidět na níže uvedeném demu. Přemístěte obrázky, aby se překryvy ukázaly pokemons. Ačkoli tento příspěvek pojednává o obrázcích, technika, kterou představuje, lze bezpečně aplikovat i na jiné typy obsahu (například textové bloky).

    Vyhněte se přidávání extra HTML prvků

    Překryvy jsou často vytvářeny umístění extra HTML elementu s neprůhlednost hodnota menší než 1 přímo nad prvkem, který má být zakryt. Problém je, že tato technika zahrnuje použití další element (nebo pseudo-element) pro překrytí.

    Nejste-li pedantem velikosti HTML, není nadbytečný prvek pravděpodobně příliš velký, protože s největší pravděpodobností nebude šířit šířku pásma žádné sítě. Nicméně samostatný pravidla stylu pro elementy a jejich překrytí stále poškozují čitelnost a udržovatelnost CSS.

    Chcete-li udržet svůj kód v pořádku a neporušovat přehledy ve formátu HTML, je to lepší volba použít řešení pouze pro CSS.

    Vytvořit překrytí s box-stín

    Jak tedy můžete skutečně vytvořit překrytí pouze pro CSS? S pomocí box-stín Vlastnost CSS. Box-shadow je ideální pro tuto práci, protože to, co je překrytí, ale temný stín nad prvkem?

    Pole stín má hodnotu vlastnosti nazývá vložka, který způsobí, že se objeví stín dovnitř rámu krabice.

    Vkládaný box-stín s velikostí stínu polovinou nebo více než polovinou šířky a výšky prvku vytváří stín, který je tvořen stínem pokrývá celý živel.

     .box width: 200px; výška: 200px; box-shadow: zelená 0 ​​0 0 100px vložka;  
    Box stín pokrývající celý prvek

    Od překrytí obvykle určitá průhlednost, musíte jej také přidat do stínu boxu. To lze provést pomocí rgba () funkce stínové barvy.

    rgb část rgba, reprezentuje červené, zelené a modré hodnoty barevného kanálu, zatímco A představuje alfa kanál, který je odpovědné za transparentnost.

    Pro alfa kanál vytvoří hodnota 1 hodnotu neprůhledná barva, zatímco 0 vytvoří plně průhledná barva.

    Přiřazením hodnoty mezi 0 a 1 alfa kanálu hodnoty barvy rgba ve stínu boxu můžete vytvořit poloprůhlednou překrytí.

    Vytvořte kód pro ukázku

    Naše demo zobrazí obrázky a jména různých pokemons. Zde vytvoříme pouze kód pro Bulbasaur, první pokémon v demu, stejně jako ostatní (stejně tak i pro Codepen)..

    HTML

    Pro HTML potřebujeme pouze vytvořit krabici ke kterému přidáme vše ostatní pomocí CSS.

    CSS

    V CSS níže, .pokemon prvky zobrazují obrázky pokemon a .pokemon :: after pseudo-elementy nesou jméno pokemon.

    Od té doby box-stín vlastnictví může mít více hodnot v následujících situacích vykreslení více stínů, kromě překryvného stínu jsem také přidal další stíny šedé .pokemon a .pokemon: hover prvky pro estetiku.

     / * Pokemon obrázky * / .pokemon width: 200px; výška: 200px; / * obsah centra pomocí flex boxu * / display: flex; justify-content: center; zarovnat položky: střed; / * overlay * / box-shadow: 0 0 0 100px vložka, 0 0 5px šedá; / * hover-out přechod * / přechod: box-shadow 1s;  / * jména pokemon * / .pokemon :: after width: 80%; výška: 80%; zobrazení: blok; písmo: 16pt 'bookman old syle'; barva bílá; okraj: 2px pevná látka; zarovnání textu: střed; / * obsah centra pomocí flex boxu * / display: flex; justify-content: center; zarovnat položky: střed; / * hover out transition * / transition: opacity 1s .5s;  / * odhalit pokemon obrázek na hover * / .pokemon: hover přechod: box-shadow 1s; box-shadow: 0 0 0 5px vložka, 0 0 5px šedá, 0 0 10x šedá vložka;  / * skrýt jméno pokemon na hover * / .pokemon: hover :: after transition: opacity .5s; opacity: 0;  

    Když .pokemon prvky jsou vznášeny, jejich box-shadow je třeba změnit, aby odhalil obraz za sebou.

    Můžete vidět, že .pokemon: hover volič dostane nový box-stín, který odstraní překrytí a .pokemon: hover :: after volič skryje název pokemon pomocí neprůhlednost vlastnictví.

    Možná jste si toho všimli absence barevných hodnot v překryvných krabicích stínů v .pokemon a .pokemon: hover pravidla stylu. Je třeba specifikovat barvu překrytí boxu stínování jednotlivých pokemonů ve svých vlastních pravidlech, protože se od sebe navzájem liší.

    Tak jako box-stín nemá žádnou dlouhou vlastnost, nemůžete nastavit jeho barvu stínu jednotlivě s něčím podobným, barva boxu; místo toho - používáme barva vlastnictví.

    Ve výchozím nastavení při zadání hodnoty barva vlastnost, tato hodnota je použije se pro ohraničení, obrys a barvy stínu boxu také. Takže můžete jednoduše použít barva vlastnost přidat barvu do box-shadow.

     #bulbasaur background-image: url (https://assets.hongkiat.com/uploads/css-only-overlays-box-shadow/bulbasaur.jpg); / * hodnota barvy použitá pro barvu stínu boxu * / barva: rgba (71, 121, 94, 0,9);  #bulbasaur :: after / * jméno pokemon * / content: 'Bulbasaur';  

    Barva stínu překrytí používá výše uvedené rgba () funkce s hodnotou 0,9 pro hodnotu alfa, aby byla překrytí průhledná.

    Kromě barvy překrytí box-stín, výše uvedené CSS také přidává pravidla, která jsou individuální pro každého pokemon - obrázek jako pozadí a jméno.

    A to je vše, jsme připraveni s naším CSS-jen barevný obrázek překrytí. Podívejte se na kód všech pokemons v peru níže.