Hemsida » Kodning » Så här skapar du CSS-Only Sticky Footer

    Så här skapar du CSS-Only Sticky Footer

    Normalt behöver vi JavaScript utföra rullningseffekter relaterade till olika användaråtgärder på webbsidor. Skriptet gör jobbet av spårar hur långt upp eller ner rullning tar en sida, och utlöser en åtgärd när en tröskelhöjd nås.

    Det är inte särskilt dåligt att använda JavaScript för rullningseffekter. Faktum är att det finns mer komplicerade fall som är omöjligt att lösa utan JavaScript. Men det finns det CSS hacks som kan ersätta dessa skript ibland.

    Detta inlägg kommer att visa dig how för att skapa sidförebyggande effekter på sidrullning med hjälp av CSS. Vi använder två användarfall för att visa detta: en för hela sidan (se demo) och en för enskilda sidelement, till exempel artiklar.

    Hel sida

    Vi måste skapa en footer som visas under sidan medan användaren rullar ner. Även när de rullar sidan tillbaka måste sidfotaren behöva döljas under sidan igen.

    För att uppnå detta mål måste vi först skapa en sidfot med fast position längst ned på skärmen.

    1. Skapa en fast sidfot

    låt oss lägg till lite innehåll och en sidfot till sidan först. Jag använder HTML-taggarna

    och
    för semantik. dock,
    fungerar också.

    I min demo finns det en fladderbild som visas inuti sidfoten för en inte så spökaktig effekt, men du kan välja vilken annan bild du gillar.

     

    Fortsätt rulla tills du ser sidfoten

    Lorem ipsum dolor sit amet ...

    Flytta till CSS, ta bort eventuellt utrymme runt tagga av ställer in marginaler till 0, och gör det tillräckligt länge lägger till en anpassad höjd att inducera rullning (om kroppsinnehållet på din sida är tillräckligt lång för att orsaka rullning behöver du inte ge den en höjd).

    Ge några dimensioner (bredd och höjd) till sidfoten och fixa sin position till botten av skärmen med position: fast; och botten: 0; egenskaper.

     kropp font-family: Crimson Text; typsnittstorlek: 13pt; marginal: 0;  sidfot bredd: 100%; höjd: 200px; position: fast; botten: 0; bakgrundsfärg: # DD5632;  
    2. Dölj footer

    Applicera z-index: -1 styra till sidfoten för att placera den bakom alla andra element på sidan.

    Färg både och taggar vita för att täcka sidfoten.

     kropp, html bakgrundsfärg: #fff;  sidfot bredd: 100%; höjd: 200px; position: fast; botten: 0; bakgrundsfärg: # DD5632; z-index: -1;  
    3. Justera bottenmarginalen

    Ställ in margin-bottom av märka lika med fotens längd (i mitt exempel 200px).

    På så sätt kommer det att finnas tillräckligt med utrymme längst ner för sidfoten till vara synlig när användaren rullar ner sidan.

     kropp höjd: 1000px; marginal: 0; marginal-botten: 200px; 

    Det är allt. Sidfoten avslöjar effekten för en fullständig webbsida är klar. Kolla in Codepen demo nedan.

    Individuella sidelement

    Denna teknik kan användas för ett enskilt HTML-element (med en sidfot) som är tillräckligt länge för en korrekt sidrulleffekt. Metoden är lite hacky, eftersom den för närvarande inte fungerar i Chrome och IE, men det har en anständig återgång.

    1. Skapa en lång artikel

    Låt oss först skapa en lång artikel med en sidfot. För att främja semantisk kod valde jag

    och
    .

     

    Artikel 1

    Lorem ipsum dolor sit amet ...

    Nedan kan du se grundläggande styling av artikeln och sidfoten.

     artikel width: 500px; background-color: # FEF9F3; vaddering: 20px 40px;  artikel> sidfot höjd: 100px; bakgrundsfärg: # FE0178;  kropp font-family: cormorant garamond;  

    Min artikel ser ut så här här. Naturligtvis kan du också använda andra grundläggande stilregler.

    Artikel med Footer - Basic Styling
    2. Gör Footer Sticky

    Den föregående sidfoten fixades, den här kommer till vara klibbig. Applicera positioner: klibbig styra till sidfoten, så det kommer att flytta inuti artikelns gränser men ändå behålla sin position på skärmen medan användaren bläddrar upp och ner.

     artikel> sidfot höjd: 100px; bakgrundsfärg: # FE0178; position: -webkit-klibbig; position: klibbig; botten: 80px;  

    De botten: 80px regel fixar positionen för sidfoten 80px ovanför artikelns botten.

    Du kan justera dess värde till din smak, eftersom det bestämmer den punkt där fotfoten börjar visas eller försvinner medan användaren rullar ner eller ner.

    Ge samma värde för artikelns bottenmarginal, så att det finns tillräckligt med utrymme längst ner för att avslöja den fulla sidfoten.

     artikel width: 500px; background-color: # FEF9F3; vaddering: 20px 40px; marginalbotten: 80px; 
    3. Lägg till en delvis transparent bakgrund

    Nu behöver vi en öppning bredvid artikelns botten genom vilken vi kan se den klibbiga sidfoten som rullar ner och ner.

    För att uppnå detta, ersätt bakgrundsfärg av artikeln med a linjär gradient bakgrundsbild, vilken från toppen av artikeln till toppen av sidfoten är färgad med bakgrundsfärgen av artikeln och den återstående delen till botten är gjort transparent.

     artikel width: 500px; vaddering: 20px 40px; bakgrundsbild: linjär gradient (till botten, # FEF9F3 beräknad (100% - 120px), transparent 0); marginalbotten: 80px;  

    Deberäkn (100% -120px) CSS-funktionen beräknar full längd av artikeln minus sidfoten. I mitt exempel är det 120px (100px för höjd + 20px för stoppning).

    Artikel med Linjär-Gradient Bakgrundsbild och Sticky Footer
    4. Placera fotbaksidan

    Slutligen, låt oss placera sidfoten bakom artikeln använda z-index: -1 CSS-regeln.

     artikel> sidfot höjd: 100px; bakgrundsfärg: # FE0178; position: -webkit-klibbig; position: klibbig; botten: 80px; z-index: -1; 

    Och det är det, det enskilda sidelementet med scroll-reveal-effekten är klar. Kolla in kodpenna nedan. Du kan också hitta båda användarfall på vår Github-sida.