Pagrindinis » Kodavimas » Sukurkite tik CSS vaizdą, atskleidžiantį efektą su skaidriomis sienomis

    Sukurkite tik CSS vaizdą, atskleidžiantį efektą su skaidriomis sienomis

    A Tik CSS vaizdas atskleidžia poveikį galima išspręsti įvairiais būdais. Tai tikrai gana paprasta koduoti dizainą, kuriame vaizdas išsiskiria (yra perpildytas) jos tvirtas fonas -tu tik įdėkite vaizdą virš mažesnio elemento, turinčio tvirtą foną.

    Tą patį rezultatą galite gauti, jei naudojate skaidrias sienas, kur jūs laikote fono elemento dydis kaip ir naujų žinių, ir pridėti skaidrių sienų sukurti tuščią erdvę kad įgytos žinios perpildytų.

    Yra kai kurie pastarojo metodo privalumai. Kadangi tai yra skaidrios sienos, kurios suteikia zonos, kur įgytos žinios gali perpildyti, įmanome kontroliuoti perpildymo kryptį tarp kairės, dešinės, viršutinės ir apatinės sienos. Be to, turint tokį patį dydį tiek priešakyje, tiek fone palengvina abiejų elementų judėjimą vienu metu per puslapį.

    Trumpai tariant, mes pamatysime, kaip sukurti tik CSS vaizdą, atskleidžiantį efektą naudojant a mažesnis kietas fonas su vaizdą, turintį skaidrių sienų. Galite patikrinti galutinis demo žemiau.

    1. Sukurkite pradinį kodą

    HTML, tik vienas

    reikia:

     

    CSS naudojame du CSS kintamieji, --bgc ir --tamsusfono spalva ir matmenys.foo konteinerį. Pavyzdyje naudoju ta pati vertė sukurti plotį ir aukštį, kad gautumėte kvadrato formos langelį atskiri kintamieji aukštį ir plotį, jei norite stačiakampio.

    Taip pat pridedame pozicija: santykinis taisyklė .foo, kad jos pseudo elementai, kuriuos mes naudosime atskleisti vaizdą, gali būti visiškai išdėstyta (žr. toliau) ir taip sukrauti vienas ant kito.

     .foo --bgc: # FFCC03; - Dim: 300px; plotis: var (- dim); aukštis: var (- dim); fono spalva: var (- bgc); pozicija: santykinis;  

    Mes pridėkite tuščią turinys nuosavybė abiem pseudo elementams, .foo :: prieš ir .foo :: po, juos gauti tinkamai.

     .foo :: before, .foo :: po content: "; pozicija: absoliutus; kairėje: 0; top: 0; 

    The .foo elementas, jo du pseudo elementai, .foo :: prieš, .foo :: po, ir jų : Pakimba pseudo klasės gauti perėjimas nuosavybė tai bus pridėkite lengvą perėjimą jiems 500 milisekundžių (pusę sekundės).

     .foo, .foo: hover, .foo :: prieš, .foo :: after, .foo: hover :: prieš, .foo: hover :: po perėjimas: transformuoti 500ms lengvumą;  

    2. Pridėti vaizdą

    Pridedame vaizdą prie .foo :: prieš pseudo elementas kaip fono paveikslėlį, ir dydžio, kad apimtų visą pseudo elementą su plotis ir aukštis savybės. Mes sukrauti jį tiesiai po .foo elementas naudojant z-indeksas: -1 taisyklė.

     .foo :: prieš plotis: 100%; aukštis: 100%; fonas: url (camel.png) centras / viršelis; z-indeksas: -1;  

    The centras raktinis žodis centruoja vaizdą, kol padengti raktinis žodis matuoja vaizdą padengti visą elementą išlaikant jo proporciją.

    Ant žemiau esančiame paveikslėlyje galite pamatyti, ką mes iki šiol turime (z-indeksas pašalinamas iš .foo :: prieš taip, kad jis būtų matomas):

    3. Pridėkite išskleidžiamąjį foną

    Jei norite pridėti mažesnis (išlenktas) fonas už vaizdo, mes naudosime kitą pseudo elementą, .foo :: po.

    Kuriame kitą CSS kintamąjį, --b, už sienos plotis. Mes duodame trys skaidrios sienos į :: po pseudo elementas: viršuje, dešinėje ir apačioje.

     .foo :: po - b: 20px; plotis: calc (100% - var (- b)); aukštis: calc (100% - apskaičiuotas (var (- b) * 2)); siena: var (- b) kieta skaidri; sienos kairėje: nėra; dėžutės šešėlis: įterpimas 0 var (- dim) 0 var (- bgc); filtras: ryškumas (.8); z-indeksas: -2;  

    The plotis apskaičiuojamas kaip Calc (100% - var - b)) kad grįžta bendrasis plotis .foo atėmus bendrą jo horizontalių sienų plotį (tik dešinysis kraštas, nes nėra kairiojo krašto).

    The aukštis apskaičiuojamas kaip Calc (100% - apskaičiuota (var (- b) * 2)) kad grįžta bendras aukštis .foo atėmus bendrą vertikalių sienų plotį (viršutinė ir apatinė sienos).

    Su langelis-šešėlis nuosavybė, mes taip pat pridėti horizontalų įdėklo šešėlį tokio pat dydžio kaip .foo (kuris yra var (- dim)).

    CSS filtras ryškumas (.8) tamsina fono spalvą šiek tiek ir galiausiai z-indeksas: -2 taisyklė vietos :: po pseudo elementas :: prieš kuriame yra vaizdas.

    Čia yra demo ekrano kopija iki šiol (su. \ t z-indeksas iš abiejų pseudo elementų, kad jie būtų matomi):

    4. Pridėti transformaciją

    Mes pridėkite transformuoti nuosavybė prie dviejų pseudo elementų, taigi, kai vartotojas persijungia .foo, abu pseudo elementai yra horizontaliai.

    Kaip mes jau pridėjo perėjimas nuosavybė visiems elementams 1 žingsnio pabaigoje yra vaizdo ir jo fono judėjimas tiek animuoti.

     .foo: hover :: prieš, .foo: hover :: po transform: translateX (100%);  

    Žemiau galite matyti galutinis demo.

    Premija: neprivaloma marža

    Jei rodote .foo šalia kitų elementų puslapyje ir norite, kad šie kiti elementai būtų pasitrauk tada, kai atvaizdas ir jo fonas išsiskleidžia pridėti teisingą paraštę, kurios plotis yra toks pat kaip ir .foo į .foo: pakimba elementas.

     .foo: hover margin-right: var (- dim);