Cum să împingeți subsolul în partea de jos a ferestrei browserului utilizând CSS. Cum să cuibărești corect un subsol flotant în partea de jos a paginii Ce înseamnă această etichetă subsol

Oricine este obișnuit cu paginile de site web cu drepturi depline preferă aspectul „cuie” (lipicios, lipicios) în partea de jos a subsolului paginii. Dar există două probleme pe Internet: câmpurile de intrare care nu cresc și subsolurile care nu sunt cuie (în partea de jos a ferestrei). De exemplu, atunci când deschidem pagini cu înălțime scurtă, cum ar fi habrahabr.ru/settings/social, este imediat izbitor faptul că informațiile concepute pentru a fi în partea de jos a ferestrei se lipesc de conținut și se află undeva în mijloc sau chiar în partea de sus a ferestrei când dedesubt este gol.

Deci, în loc de.
Acest ghid pentru proiectanții de amenajare începători vă va arăta cum să creați un subsol „cuie” în 45 de minute, corectând defectele chiar și unei publicații atât de respectate precum Habr, și să concurați cu aceasta ca o împlinire a proiectului promițător.

Să ne uităm la implementarea unui tip de subsol cuie preluat din rețea și să încercăm să ne dăm seama ce se întâmplă. css-tricks.com/snippets/css/sticky-footer
CSS:
* (margin: 0; padding: 0;) html, body, #wrap (înălțime: 100%;) body\u003e #wrap (înălțime: automată; min-înălțime: 100%;) #main (padding-bottom: 150px; ) / * trebuie să aibă aceeași înălțime ca subsolul * / #footer (poziția: relativă; marginea-sus: -150px; / * valoarea negativă a înălțimii subsolului * / înălțimea: 150px; clar: ambele;) / * CLEAR FIX * / .clearfix: după (conținut: "."; afișare: bloc; înălțime: 0; clar: ambele; vizibilitate: ascuns;) .clearfix (afișare: bloc în linie;) / * Ascunde din IE-mac \\ * / * html .clearfix (înălțime: 1%;) .clearfix (afișaj: bloc;) / * End hide from IE-mac * /
HTML:

Este puțin probabil ca toată lumea, chiar și cei care cunosc CSS, care se uită la acest cod, să înțeleagă principiile și să editeze cu încredere un proiect complex. Orice pas spre lateral va duce la efecte secundare. Raționamentul și fabricarea subsolului de mai jos sunt destinate să ofere o mai bună înțelegere a regulilor CSS.

Să începem cu teoria

Implementarea obișnuită a unui subsol cu \u200b\u200bcui se bazează pe proprietatea unică CSS2 că elementele sunt descendenți imediați CORP - menține înălțimea procentuală ( înălțime: 100% sau altul) relativ la fereastră, dacă toți părinții lor au aceeași înălțime procentuală, începând cu eticheta HTML... Anterior, fără doctipuri, dar acum în modul Quirks, înălțimile procentuale ale elementelor sunt acceptate la orice nivel, iar în doctipurile moderne - numai în elemente procentuale specificate. Prin urmare, dacă facem un bloc de conținut (să-l numim #layout) care are 100% înălțime, se va derula ca și cum ar fi o fereastră. Tot conținutul (în flux) este plasat în el, cu excepția subsolului și poate a antetului.

Un subsol este plasat lângă acest bloc și are 0 înălțime de pixeli. În general, puteți urmări #layout puneți câte blocuri doriți, dar toate trebuie să fie fie de la 0 pixeli în înălțime, fie în afara fluxului documentului (nu poziție: statică). Și există un alt truc important care este de obicei folosit. Nu este necesar să faceți înălțimea egală cu 0. Puteți face înălțimea fixă, dar scădeți-o din blocul principal folosind proprietatea marginea-fund: - (înălțime);.

În termeni umani, stilurile fac un „buzunar” gol în partea de jos, în care este inserat subsolul, și se dovedește întotdeauna fie lipitor de marginea de jos a ferestrei, fie de partea de jos a documentului dacă documentul are o înălțime mai mare decât înălțimea ferestrei. Pe Internet și pe Habré, există multe implementări ale subsolului, cu succes diferit în toate browserele. Să continuăm să-l construim pe cont propriu, folosind aspectul lui Habr ca „cal de lucru”.

De la partea de jos a blocului #layout - acesta este un buzunar, ar trebui să fie gol pentru subsol, fără a afișa obiectele paginii. Și aici ne întâlnim cu încă o limitare - nu putem face un buzunar gol în detrimentul căptușeală în #layout, pentru că atunci va deveni mai mare de 100%. Nu va salva și marjă - golul trebuie făcut datorită proprietăților elementelor imbricate. În plus față de tot, este necesar să ne asigurăm că elementele plutitoare nu ies sub marginea blocului, ceea ce se face, de exemplu, printr-un bloc

Unde .clare (clar: ambele)... Este important ca fie acest lucru " înălţime"a fost fixat, sau în aceleași unități relative, sau l-am calcula în procesul de modificare a paginii. De obicei, este convenabil să combinați această casetă de aliniere cu setarea înălțimii necesare pentru aceasta.

Să ne uităm la structura paginilor experimentului nostru. Cel mai simplu mod de a face acest lucru este să deschideți fereastra Firebug sau o fereastră similară (Developer Tools (Ctrl-F12)) în Chrome.

... Blocul publicitar superior ...


Să trecem la un exemplu de lucru

Ce vedem defecte de aspect în ceea ce privește implementarea efectului unui subsol cuie? Vedem asta
1) subsolul de pe site se află într-un bloc cu id \u003d layout, care nu are înălțime procentuală. În teorie, el, părinții și blocul conținut stâng trebuie setate la 100% înălțime. Există probleme cu acesta din urmă - nu este potrivit pentru acest lucru. În consecință, lipsește un bloc interstrat sau subsolul este la un nivel greșit. În afară de,
2) înălțimea subsolului este variabilă (depinde de numărul de elemente din listă și de dimensiunea fontului, acest lucru poate fi văzut nu din HTML, ci din CSS). ȘI
3) peste #layout există o unitate de anunțuri cu o înălțime fixă \u200b\u200bde 90 px;
4) nu există casete de aliniere în subsol sau (în general vorbind) în casetă #layout (da, dar deasupra blocului .posturi_rotate; cu toate acestea, poate ar trebui atribuit subsolului).

Punctul 4 - va trebui să desenați cu un script.
S-ar părea simplu să-ți dai seama de al treilea punct adăugând #layout (margin-top: -90px;) Dar amintește-ți că acest bloc poate să nu existe - este suprimat de un dispozitiv de tăiere a bannerelor, sau agenții de publicitate vor decide brusc să nu-l afișeze. Există o serie de pagini ale site-ului în care nu este. Prin urmare dependența marginea-sus dintr-o unitate de anunțuri este o idee proastă. Mult mai bine este să-l așezi înăuntru #layout - atunci nu va interfera cu nimic.

Primul punct este că, pentru ca subsolul cuie să funcționeze, trebuie să plasați blocul de subsol #layout... Cu toate acestea, cu ajutorul javascriptului, puteți implementa alte scheme ale subsolului cuie, dar în orice caz, aveți nevoie de JS sau de aspectul corect inițial pentru a vă lipsi de acesta.

Deoarece nu putem fi mai puternici decât ultimul designer de site-uri, care a „blocat” subsolul în conținut, vom amâna ideea plasării corecte a subsolului pe viitorul nostru site (care, prin urmare, va fi „mai cool” Habr!) stări. (Să spunem imediat că nu vinovatul este proiectantul de machetare sau comutatorul, ci tipul site-ului, desigur, determină decizia strategică a managementului proiectului.) Astfel nu vom ajunge la ideal, deoarece în prima sau două secunde în timpul procesului de încărcare, pagina va avea un aspect greșit. Dar conceptul și capacitatea de a depăși cel mai popular site din lumea IT sunt importante pentru noi.

Prin urmare, în locul potrivit din script (devreme, la sfârșitul încărcării paginii), vom scrie transferurile blocurilor de anunțuri și subsol DOM în locurile necesare. (Să ne pregătim pentru faptul că, datorită scripturilor de utilizator, soluția va fi mai complicată decât una curată.)
var dQ \u003d funcție (q) (return document.querySelector (q);) // pentru prescurtare var topL \u003d dQ ("# topline"), lay \u003d dQ ("# layout"), foot \u003d dQ ("# footer" ); if (topL && lay) // banner - în interiorul blocului de conținut lay.insertBefore (topL, lay.firstChild); if (lay && foot && lay.nextSibling) // împachetarea subsolului lay.parentNode.insertBefore (subsol, lay.nextSibling);
Am pus blocurile în locurile lor - acum rămâne să atribuim proprietățile necesare elementelor. Înălțimea subsolului va trebui setată exact, pur și simplu pentru că o știm deja până când acționează scriptul utilizatorului (sfârșitul încărcării paginii). Datorită punctului de declanșare al scriptului de utilizator, așa cum s-a menționat mai sus, un salt în afișarea subsolului pe pagină este inevitabil. Poți încerca să faci o „față bună”, dar cu un „joc rău”? Pentru ce? „Jocul rău” al site-ului vă permite să creați un concept fără super-eforturi, care va fi suficient pentru a evalua calitatea și nu va fi necesar dacă „jucați corect” în proiectul dvs.
if (picior) (// bloc aliniator

în subsolul h.apnd_el ((clss: "clear", appendTo: subsol)); var footH \u003d foot.offsetHeight; // ... și măsurați înălțimea subsolului) if (topL && lay && footer && lay.nextSibling) (// alinierea blocului înălțimii dorite în conținut ("aspect") h.apnd_el ((clss: "clear", css :( înălțime: (footH || 0) + "px"), appendTo: lay)); lay.style.minHeight \u003d "100%"; h.addRules ("# layout (margin-bottom: -" + footH + "px ! important) html, corp (înălțime: 100%) ");)
Aici ne-am permis să folosim o funcție auto-scrisă h.apnd_elcare face cam același lucru ca în jQuery -
$("
") .css ((înălțime: footH || 0)). appendTo ($ (footer))
Și apoi există o altă funcție tipică de injecție a regulilor CSS - h.addRules... Aici nu puteți face fără ea, pentru că trebuie să declarați o regulă cu „ ! important"- doar datorită particularităților priorităților de stil din scriptul utilizatorului.

Cu aceste bucăți de cod, vom putea vedea subsolul cuie în scriptul utilizatorului (după ce l-am sărit în jos) și vom înțelege pe deplin cum să construim aspectul paginii. Este frustrant să folosești zilnic designul săritor, așa că este recomandat să îl faci exclusiv pentru demonstrare și testare. În scriptul de utilizator HabrAjax, am instalat un script similar, închizându-l cu setarea „underFooter” (bifați caseta din lista de setări înainte de „cuie în subsolul inferior”), începând de la versiunea 0.883_2012-09-12.

Footerul cu cui afectează necesitatea actualizării stilurilor ZenComment dacă este instalat? Da, da. Datorită lanțului complex de priorități de stil, în care stilurile inserate de scriptul de utilizator au cea mai mică prioritate, a trebuit să ajustez ușor stilurile de utilizator pentru capacități lucrați cu un subsol cu \u200b\u200bcui. Dacă nu actualizați stilurile de utilizare (până la 2.66_2012-09-12 +), subsolul nu va funcționa corect.

bloc rotated_post (trei postări populare din trecut) arată mai logic în subsol, deci într-un script real este mutat și în subsol.

Al doilea punct (din lista imperfecțiunilor din aspect) este raționamentul pur pentru Habr (acestea nu se aplică scriptului utilizatorului și se repetă parțial pe cele anterioare).

Paginile au o problemă care le împiedică să redea un subsol cu \u200b\u200bcui în CSS pur - o înălțime de subsol nedefinită, în funcție de dimensiunile de font implicite ale browserului. Pentru a implementa un subsol în CSS, trebuie să alegeți înălțimile relative ale fonturilor, dar este posibil să nu funcționeze dacă fonturile furnizate nu sunt disponibile pe computerul utilizatorului. Prin urmare, soluția ar trebui să includă un javascript care să se potrivească poziției aproximative a subsolului cu tranziții la cea exactă. Sau, după ce ați analizat acceptabilitatea soluției făcute în scriptul utilizatorului pe diferite platforme, faceți o instalare calculată a subsolului cuie - primele observații arată că soluția este practică.

Concluzie: este posibil să aranjați complet aspectul pe Habré, dar pentru aceasta aveți nevoie de un proiectant care să înțeleagă în mod clar comportamentul aspectului și să plaseze blocurile în ordinea corectă. (Acum, subsolul și bannerul de sus sunt „în locul greșit” și nu astfel încât să se poată stiliza doar pentru a obține un subsol cuie.) Puteți face fără JS dacă setați înălțimea subsolului în unități relative, luând o anumită marjă pentru incertitudinea fontului.

Implementare

Dacă activați HabrAjax 0.883+, vom vedea lucrarea „subsolului cu cui”. Se adaptează în înălțime folosind scripturi. Vă permite să evaluați cât de bine arată paginile cu subsolul cuie în comparație cu cele obișnuite. Stilurile de utilizare ZenComment sunt compatibile cu scripturile, dar pentru ca subsolul cu cui să funcționeze corect, trebuie să instalați versiunea ZenComment 2.66_2012-09-12 + cu acestea.

Fapte de comportament de implementare

Șamanismul cu subsol, stiluri și scripturi este șamanism (numai pentru a fi susținut de teorie). Comportamentul este ușor diferit în diferite browsere, dar în unele locuri este neașteptat. Fără scripturi de utilizator și rearanjări bloc, rezultatele vor fi diferite. Aceasta este ceea ce au dat experimentele cu implementarea în scriptul utilizatorului.

1) Firefox - lipsa neașteptată de salt de subsol. Este ciudat că nu sunt acolo - redarea are loc după plasarea subsolului în partea de jos.

2) Chrome - a surprins cu un „scroll errant” - spațiile goale din partea de jos sunt adăugate pe pagină cu o perioadă de o dată pe secundă - se întâmplă ceva greșit la calcularea înălțimilor. Se tratează scriind html, body (înălțime: 100%) în stilul de utilizare, dar fără garanții că va funcționa întotdeauna. Este mai sigur să verificați dacă documentul nu depășește fereastra în înălțime și, dacă nu, mutați subsolul, altfel nimic. Cu săriturile - totul este în ordine, așa este.

3) Opera - fără sărituri (v. 12.02) la încărcarea primei pagini, dar o reîncărcare pripită poate arăta un salt de subsol. În caz contrar, nu conduce mai puțin corect decât Fx.

Ei bine, va trebui să-l învățați special pe Chrome să se comporte corect (cu un script) și, în această formă, lansați versiunea pentru revizuire. Prin urmare, site-ul din scriptul utilizatorului este puțin mai complicat decât cel dat în articol.

Trebuie reamintit faptul că aceasta nu este o implementare completă - nu ia în considerare, de exemplu, cazurile de redimensionare a ferestrelor de către utilizator. Puteți găsi, de asemenea, combinații rare (în practică) de schimbare a înălțimii subsolului înainte și după mutare, unde logica va începe să funcționeze defectuos fără a duce la neplăceri. Dezavantajele au fost lăsate în mod deliberat, deoarece se observă echilibrul complexității revizuirii și actualitatea soluției.

Ca rezultat, sa dovedit a fi o schemă de lucru destul de viabilă, cel puțin pentru calculatoarele staționare rapide. Dacă se găsește un comportament incorect al subsolului, setarea „underFooter” ar trebui să fie dezactivată.

Pentru ce pagini este util acest lucru?

Pe un site standard, fără stiluri de utilizator, chiar și paginile scurte de întrebări și răspunsuri se dovedesc a fi mai lungi de 1500 px, ceea ce în majoritatea cazurilor este invizibil cu monitoarele orizontale. Dar chiar și cu monitoarele obișnuite, se întâlnesc deseori paginile personale ale utilizatorilor cu o înălțime de aproximativ 1300 pixeli, unde apare un subsol neîntrerupt în toată splendoarea sa. Nici un număr de pagini din setările utilizatorului nu sunt foarte lungi.

Dacă utilizați stiluri de utilizator ZenComment, acestea reduc foarte mult înălțimea de pagină necesară, iar scriptul de utilizator HabrAjax poate să nu afișeze unele sau toate barele laterale din bara laterală. Prin urmare, cu scripturi și stiluri, efectul unui subsol nesetat este observat mult mai des. Prin urmare, este logic ca o soluție de subsol să apară pentru prima dată în HabrAjax. Dar chiar și un site normal are un număr de pagini în care ar fi util un subsol cu \u200b\u200bcui.

Va exista sprijin?

Comportamentul site-ului în ultimul an arată că dezvoltatorii (și, prin urmare, conducerea) au început să implementeze caracteristici care existau anterior doar în scripturile și stilurile de utilizator. De exemplu, la începutul anului am scris unde am adunat multe mici urări. Șase luni mai târziu, m-am întors la el și am observat cu satisfacție (chiar în text; puteți vedea „UPD” și date) că o serie de caracteristici descrise ca dorințe au fost deja implementate pe site.

În continuare, să ne uităm la „săgețile” în loc de casetele pentru evaluarea comentariilor. Au apărut la utilizatorii almalexa („Prettifier”) acum aproximativ 3 ani și au fost adoptați în ZenComment acum 2 ani. Acum aproximativ 2-3 luni, au apărut pe site. Începe să creadă că după un timp săgețile se vor răspândi oarecare distanță, așa cum se face în ZenComment (o săgeată la stânga numărului, a doua la dreapta), pentru a pierde mai puțin.

Prin urmare, poate, „subsolul cuie” de pe Habré nu este o fantezie pe cât ar putea părea acum aproximativ 3 ani.

Au fost introduse și alte caracteristici din scriptul HabrAjaxpentru ultimele 3 luni (poate fi dezactivat în setări):
* Autorii câmpurilor de intrare (în Opera poate încetini textele mari);
* zile ale săptămânii pentru alte date decât „azi” și „ieri”;
* evenimente în flux, pliabil la 1 linie și 2 caractere;
* reducerea cuvintelor „habr *” la „χ ·” și „χα”;
* indicii de date în funcție de numerele articolelor - se raportează în ce lună și în ce an a fost articolul înainte de a fi încărcat, după numărul din adresa URL
* a restrâns „Postări conexe” la 2 cuvinte Captură de ecran a ferestrei pop-up „postări similare” (afișând 12 linkuri, nu 4).

Acesta este un fel de coșmar! De ce subsolul site-ului dvs. apare din nou și schimbă designul? Nu este posibil să apăsați corect subsolul paginii cu ceva? Cu toate acestea, conținut sau cărămizi! Se va potrivi o cărămidă în monitor?

Văd, apoi stai pe spate și nu face nimic până nu vei citi articolul nostru până la capăt.

Crearea subsolului potrivit pentru site-ul dvs.

Mulți proprietari de site-uri se confruntă cu această problemă atunci când subsolul paginii apare doar „sus”. Și atunci nu este clar ce să facem. Cel mai adesea, un astfel de neajuns este păcătuit de design-urile de site-uri web care au fost expuse rapid singure ( cerc "mâini nebune") sau webmasteri începători.

În același timp, la începutul vieții site-ului, nu se întâmplă nimic terifiant. Și această idilă continuă atât timp cât conținutul apasă „cu propria greutate” pe subsol, nepermițându-i să se ridice. Dar merită să plasați mai puțin material pe pagină, iar subsolul „calm” recent se ridică instantaneu, făcând ca întregul design al site-ului să pară inadecvat.

Pentru a elimina acest „defect” al șablonului de aspect, nu este necesar să cheltuiți bani pe servicii de webmaster. Cel mai adesea, subsolul site-ului poate fi înlocuit de dumneavoastră. Luați în considerare toate opțiunile posibile pentru eliminarea unei astfel de probleme:

Prima cale

Prima modalitate de „ancorare” a subsolului „în partea de jos” a paginii se bazează pe CSS. Să începem cu un exemplu de cod și apoi să analizăm mai atent implementarea acestuia:



html (înălțime: 100%;) antet, nav, secțiune, articol, deoparte, subsol (afișaj: bloc;) corp (înălțime: 100%;) # wrapper (lățime: 1000px; marjă: 0 auto; înălțime minimă: 100 %; înălțime: automată! important; înălțime: 100%;) # antet (înălțime: 150px; fundal-culoare: rgb (0,255,255);) #content (umplutură: 100px; înălțime: 400px; fundal-culoare: rgb (51,255,102) ;) #footer (lățime: 1000px; margine: -100px auto 0; înălțime: 100px; poziție: relativă; fundal-culoare: rgb (51,51,204);)

Pentru a lipi subsolul în partea de jos a etichetei de pagină

ne-am mutat în afara containerului (strat de înveliș). Intindeți întreaga pagină și conținutul „corpului” până la marginile ecranului. Pentru a face acest lucru, în codul CSS, setăm înălțimea etichetelor și în 100%:

html (înălțime: 100%;) corp (înălțime: 100%;)

De asemenea, stabilim înălțimea minimă a stratului containerului la 100%. În cazul în care lățimea conținutului este mai mare decât înălțimea containerului, setați proprietatea la automat. Datorită acestui fapt, ambalajul se va regla automat la lățimea conținutului plasat pe pagină:

# wrapper (min-înălțime: 100%; înălțime: automată! important; înălțime: 100%;)

Linia de cod „înălțime: 100%” este pentru versiunile mai vechi ale IE care nu acceptă proprietatea min-înălțime.

Pentru a face spațiu pentru subsol în proiectarea paginii, setăm indentarea etichetei în 100 pixeli:

#content (padding: 100px;)

În acest moment, avem o pagină web cu ecran complet cu 100 de pixeli suplimentari, care sunt „neutralizați” de o marjă de subsol negativă (marjă: -100px) atunci când este poziționată relativ (poziție: relativă). Astfel, cu o valoare de umplutură negativă, „deplasăm” subsolul în zona containerului, pentru care înălțimea este setată la 100%.

În acest exemplu, marcajul documentului web este specificat folosind etichete HTML 5 relativ noi, care pot fi interpretate greșit de versiunile mai vechi ale browserelor. Din acest motiv, întregul design al paginii poate fi afișat incorect. Pentru a evita acest lucru, trebuie să înlocuiți noile etichete din arsenalul versiunii 5 a limbajului hipertext cu cele obișnuite.

:

conţinut


Versiune îmbunătățită

Metoda de mai sus pentru a face subsolul din partea de jos a paginii „imuabil” nu este pentru toată lumea. Dacă în viitor veți modifica și îmbunătăți designul site-ului dvs. utilizând ferestre pop-up, atunci este mai bine să abandonați implementarea anterioară.

Cea mai obișnuită implementare a ferestrelor pop-up utilizează proprietatea CSS z-index. Valorile sale sunt utilizate pentru a seta ordinea de stivuire a straturilor.

Cu cât este mai mare indexul z al unui element, cu atât va fi mai mare în stiva generală de stratificare.

Dar datorită faptului că am folosit o umplutură de subsol negativ în exemplul anterior, partea de jos a ferestrei pop-up se va suprapune cu subsolul de sus. Chiar dacă va avea un indice z mai mare. Deoarece părintele pop-up-ului (wrapper) are încă o valoare mai mică pentru această proprietate.

Iată o versiune mai bună:



CSS - exemplu de cod:

html, corp (înălțime: 100%;) .antet (înălțime: 120px; fundal-culoare: rgb (0,255,102);). principal (min-înălțime: 100%; poziție: relativ; fundal-culoare: rgb (100,255,255); ) .footer (înălțime: 150px; poziție: absolut; stânga: 0; jos: 0; lățime: 100%; culoare de fundal: rgb (0,0,153);)

După cum puteți vedea din cod, am plasat subsolul în elementul principal. Am setat containerul la poziționarea relativă și poziționarea absolută pentru subsol. Am fixat subsolul chiar în partea de jos a containerului, stabilindu-i poziția în stânga și în partea de sus la 0.

Opțiune subsol cu \u200b\u200bînălțime nedeterminată

Implementările anterioare se pot asigura că subsolul este întotdeauna în partea de jos a paginii. Dar numai dacă subsolul are o lățime fixă. Dar dacă nu se poate prezice cantitatea de conținut postat în acesta?

Acest lucru va necesita o opțiune mai bună pentru un subsol non-fix. Setează subsolul pe tabel-rând pentru proprietatea de afișare. Acest lucru îl va face să apară ca un rând de tabel.

Dacă pantofii sunt piesa finală a oricărei ținute, atunci subsolul unui site de comerț electronic este elementul final al designului său de marketing. Concentrându-se pe cel mai jos element al „subsolului”, site-urile web moderne sunt gata să-și prezinte individualitatea în toate modurile. Într-un mediu competitiv de comerț electronic, există suficiente idei originale, creativitate și tendințe de design. Înainte de a diversifica subsolul unui site de comerț electronic, există puncte importante de luat în considerare. Ce trebuie să plasați mai întâi și cum să o faceți cel mai bine? Revizuirea noastră de modele inspirate de subsol are câteva opțiuni interesante.

Citește și: 13 tendințe de marketing pentru comerțul electronic în 2019

Statistici interesante de la compania Chartbeat. Un studiu al comportamentului a 25 de milioane de utilizatori a arătat cât de profund navighează pe pagini. Se pare că atenția utilizatorului este atrasă de spațiul de sub linia de pliere. Obținând informații mai utile din punct de vedere practic, vizitatorii rămân cel mai mult timp în zona de 1200 px din partea de sus a paginii (cu o medie de 700 px de-a lungul ecranului vertical din browser) sau în spatele celui de-al doilea ecran.

Timp de vizualizare (sec.) / Distanța de la începutul paginii (pixeli)

Există un decalaj mare în durata vizualizării primului și celui de-al doilea ecran. Cea mai mare TOP - 4 secunde, durata ajunge la maximum (16 secunde) la 1200 pixeli din partea de sus și cu derularea suplimentară, scade încet.

Ponderea vizitatorilor (%) / Distanța față de partea de sus a paginii (pixeli)

O parte semnificativă a vizitatorilor (peste 25%) nici măcar nu așteaptă încărcarea conținutului și încep să deruleze pagina. Aceasta înseamnă că doar 75% vor vedea primul în top. Cea mai vizualizată zonă a paginii este de 550 px (chiar deasupra liniei de pliere).

Studiul elimină mitul conform căruia utilizatorii nu derulează până la capăt și urmăresc tot conținutul. Footerul este, de asemenea, important pentru un site modern de comerț electronic, chiar și are propriile sale avantaje.

Idei despre cum să decorați un „subsol” (subsol), exemple de modele de vânzare

Aceste 10 sfaturi vă vor arăta cum să creați un subsol frumos pentru site-ul dvs. web - conform regulilor de compoziție în proiectarea web și cu rezoluția priorităților. Aplicați cele mai potrivite tactici pentru a îmbunătăți gradul de utilizare, UX (experiența utilizatorului) și chiar crește vânzările.

1. Informații necesare

În mod tradițional, problemele organizatorice și juridice necesare sunt evidențiate în subsolul site-ului. Notificările sunt redate într-un text mai puțin vizibil, ceea ce eliberează alte zone ale paginii pentru elemente mai semnificative. Iată o listă generală de luat în considerare:

  • Note privind drepturile de autor
  • Notificări legale
  • Informații de facturare
  • Notificare cookie

Site-ul web care vinde bunurile trebuie să îndeplinească cerințele legale și să furnizeze informații despre procedură, condițiile de returnare. Amplasarea sa în subsol este convenabilă atât pentru resursa de vânzare, cât și pentru vizitatori.

Exemplu de subsol: Yves Rocher

Magazin online Yves Rocher: subsol cu \u200b\u200becran complet, cu un design plăcut din straturi alternante. Informează despre companie, infrastructura site-ului de vânzare - de la urmărirea comenzilor până la politica de date cu caracter personal. Există, de asemenea, sfaturi pentru utilizarea produsului, bonusuri, promoții

Exemplu footer'a: Lumity

Comercianții de aditivi alimentari sunt acuzați de o valoare legală crescută. o responsabilitate. Există destul de multe lucruri pe care ar trebui / nu ar trebui să le spună pe site-ul lor de marketing. Link-urile către informații juridice sunt aldine pentru o mai bună vizibilitate.

Un subsol cu \u200b\u200bo frumoasă imagine de fundal se potrivește foarte organic în designul general al site-ului. Nu există o margine clară, ci mai degrabă conținutul în sine servește ca separator

Exemplu de subsol: Saddleback Leather Co

Un site de vânzare cu un design retro frumos al antetului și subsolului. Garanție limitată de 100 de ani împotriva defectelor de material și de fabricare. Termenii de returnare sunt însoțiți de povești interesante ... nu totul este atât de trist cu informațiile necesare despre comerțul electronic, se pare

2. Spațiu negativ - suficientă distanță vizuală

Limitând numărul de link-uri de subsol, nu economisiți spațiul negativ - aceasta va avea un efect uimitor asupra percepției vizuale și va îmbunătăți lizibilitatea. Ca regulă generală, atunci când se observă ierarhia vizuală, elementele centrale sunt observate mai repede (pot fi folosite în avantaj!).

Exemplu footer'a: QUAY AUSTRALIA

Cu un stil minimalist și un meniu drop-down fix, un magazin online își poate permite un subsol spațios.

Exemplu footer'a: Incase

O cantitate mare de spațiu micro-negativ (între elemente mici) se poate spune în acest fel: atâta timp cât toate informațiile necesare sunt prezente, acestea sunt lizibile și percepute rapid - totul este în regulă

Exemplu footer'a: Stumptown Coffee Roasters

Subsolul spațios al site-ului de cafea este o completare excelentă a compoziției unui design curat, în care există mult spațiu macro-negativ („aer” între secțiuni / secțiuni)

3. Încheierea îndemnului la acțiune

Citește și: 30+ exemple și idei de proiectare pentru butoane de acțiune țintă

Designul elegant al subsolului spune multe despre resursa în sine. Este important de reținut: cumpărătorul rămâne aici puțin mai mult decât în \u200b\u200brestul paginii. O ocazie oportună pentru un alt apel final la acțiune. Adesea acesta este un abonament / newsletter, dar puteți asocia și un apel CTA cu o înregistrare a contului.

Exemplu footer'a: Greetabl

Greetabl are un subsol cu \u200b\u200bun stil modest, cu un apel pentru abonament. Cu un minim de elemente, atracția devine vizibilă și, în armonie cu fundalul turcoaz, se transformă într-un decor al site-ului

Exemplu footer'a: Ecwid

Design frumos, cu îndemnuri în partea de jos a paginilor. Structura constructorului de site-uri este universală. Pentru un milion de clienți, a fost tradus în 35 de limbi

4. Coș plutitor - creșterea disponibilității funcționalității de vânzare

Accesarea coșului dvs. de cumpărături din partea de jos a site-ului dvs. este o modalitate excelentă de a îmbunătăți calitatea de utilizare și de vânzare a site-ului dvs.

Exemplu footer'a: Lemonadela

Site-ul de vânzare al companiei de catering este plăcut și convenabil pentru cumpărător

5. Navigare în subsol

Subsolul site-ului este ideal pentru informații care nu sunt vizualizate frecvent: despre companie, condițiile de furnizare a serviciilor și politica de confidențialitate. În acest caz, funcția subsolului este de a salva pe toată lumea. Simțindu-se pierdut în mediul eCommerce, cineva devine interesat de infrastructura magazinului eCommerce, derulând instinctiv în jos ...

Spațiul negativ este esențial pentru lizibilitatea conținutului. În general, „subsolul” nu este destinat navigării, spre deosebire de meniu sau sitemap. Doar în cazuri rare, site-urile de comerț electronic plasează anumite categorii de produse în subsol (

Îmi amintesc că în momentul în care am început să trec de la tabele la aspect prin divs, una dintre dificultățile cu care m-am confruntat a fost următoarea - cum să împingeți subsolul în partea de jos a ferestrei browseruluipentru a face pagina să pară alungită la înălțimea maximă, indiferent de cantitatea de text, iar dacă înălțimea paginii este mai mare decât înălțimea ferestrei browserului (atunci când apare un scroll), subsolul ar rămâne la locul potrivit.

Dacă se utilizează tabele, această sarcină este rezolvată numai prin specificarea înălțimii tabelului și / sau a unei celule imbricate în acesta, atunci când se utilizează CSS într-un aspect de bloc, se utilizează o abordare complet diferită.

În procesul de practică, m-am ales singură 5 moduri de a împinge subsolul în partea de jos a ferestrei browserului folosind CSS.

Codul HTML al tuturor metodelor prezentate are următoarea structură (singura diferență este în codul CSS):



CSS de mai jos include numai acele proprietăți care sunt necesare minim pentru a implementa metoda corespunzătoare. Pentru fiecare dintre ele, puteți vedea un exemplu live.

Prima cale

Footerul este stors în jos, poziționându-l absolut și trăgând înălțimea blocurilor părinte (html, corp și .wrapper) cu 100%. În acest caz, blocul de conținut.content trebuie să aibă o umplutură inferioară egală sau mai mare decât înălțimea subsolului, altfel acesta din urmă va acoperi o parte din conținut.

* (margine: 0; umplutură: 0;) html, corp (înălțime: 100%;). wrapper (poziție: relativă; înălțime minimă: 100%;). : absolut; stânga: 0; jos: 0; lățime: 100%; înălțime: 80px;)

A doua cale

Footer-ul este apăsat în jos întinzând blocul de conținut și „părinții” acestuia până la înălțimea completă a ferestrei browserului și ridicând subsolul printr-o margine negativă (margin-top) pentru a scăpa de derularea verticală rezultată. În acest caz, este necesar să indicați înălțimea subsolului și trebuie să fie egală cu cantitatea de indentare.

* (margine: 0; padding: 0;) html, body, .wrapper (înălțime: 100%;) .content (box-sizing: border-box; min-height: 100%; padding-bottom: 90px;). subsol (înălțime: 80 px; marginea de sus: -80 px;)

Datorită proprietății box-sizing: border-box, împiedicăm caseta .content să depășească 100% înălțime. Adică, în acest caz min-height: 100% + padding-bottom: 90px este egal cu 100% din înălțimea ferestrei browserului.

A treia cale

Este bine că, spre deosebire de alte metode (cu excepția celei de-a 5-a), înălțimea subsolului nu contează.

* (margine: 0; umplutură: 0;) html, corp (înălțime: 100%;). wrapper (afișaj: masă; înălțime: 100%;). conținut (afișaj: rând-masă; înălțime: 100%;)

Aici emulăm comportamentul tabelului prin transformarea blocului .wrapper într-un tabel și a blocului .content într-un rând de tabel (display: table și display: respectiv proprietăți table-rând). Datorită acestui fapt, precum și a faptului că blocul .content și toate containerele sale părinte sunt setate la o înălțime de 100%, conținutul este întins la înălțimea maximă, dar minus înălțimea subsolului, care este determinat automat - emularea tabelului nu permite subsolului să se deplaseze dincolo de înălțimea ferestrei browserului.

Ca rezultat, subsolul este apăsat în partea de jos.

A patra cale

Această metodă este diferită de oricare dintre cele anterioare, iar particularitatea sa constă în utilizarea funcției CSS calc () și a unităților vh, care sunt acceptate doar de browserele moderne. Aici trebuie să cunoașteți înălțimea exactă a subsolului.

* (margine: 0; umplutură: 0;). conținut (înălțime minimă: calc (100vh - 80px);)

100vh este înălțimea ferestrei browserului și 80px este înălțimea subsolului. Și folosind funcția calc (), scădem a doua valoare din prima, apăsând astfel subsolul în jos.

Pentru a afla ce browsere acceptă calc () și vh, puteți vizita caniuse.com urmând link-uri: suport pentru funcția calc (), suport pentru unitatea vh.

A cincea metodă (cea mai relevantă)

Acesta este cel mai bun mod, dar funcționează doar în browserele moderne. Ca și în a treia metodă, înălțimea subsolului nu contează.

* (margine: 0; umplutură: 0;) html, corp (înălțime: 100%;). wrapper (afișaj: flex; direcție flexibilă: coloană; înălțime minimă: 100%;). conținut (flex: 1 0 auto ;) .footer (flex: 0 0 auto;)

Puteți afla despre suportul browserului pentru proprietatea flex.

Adesea în timpul instalării, butoane, bannere etc. există o nevoie inserarea codurilor html, css și JavaScript în corpul corpului și al etichetelor capului. Executarea incorectă a acestei operațiuni manual poate deteriora site-ul și chiar perturba complet performanța acestuia.

Un plugin minunat a fost creat pentru a automatiza acest proces, accesați setările din panoul de administrare și lucrați cu plăcere. Este ușor de utilizat și are următoarele caracteristici:

Pentru a mări imaginea, faceți clic pe ea cu butonul mouse-ului. Faceți clic din nou pentru a micșora.

1. Head Head and Footer... Adăugarea codului la pagina principală a site-ului.

Cod care trebuie adăugat în secțiunea HEAD a casei (cod care trebuie introdus în antetul paginii principale (principală)). Vă permite să inserați metaetichete, bannere publicitare, butoane etc. a eticheta corpul ... Mai des, aceasta este o parte invizibilă a codului pentru absența unui afișaj vizual pe site. Rezultatul lucrării părții vizibile a codului va apărea deasupra antetului de pe pagina principală.

Cod care trebuie adăugat în secțiunea HEAD a fiecărei pagini (cod care trebuie adăugat la antetul fiecărei pagini). Adăugarea codului în corpul etichetei la secțiunea HEAD. Rezultatul lucrării părții vizibile a codului va apărea deasupra antetului pe toate paginile, inclusiv pe cea principală.

Cod care trebuie adăugat înainte de sfârșitul paginii (cod care trebuie introdus la sfârșitul paginii). Adăugarea codului la subsol pe toate paginile înainte de eticheta de închidere

... Acest lucru funcționează numai pentru temele care au un fișier footer și footer.php.

Aproape toate ghișeele sunt formate din două părți - acestea sunt coduri ale părților invizibile și vizibile (informator) ale ghișeului. Codul piesei invizibile este inserat după eticheta de deschidere cât mai sus posibil în partea de sus a paginii. Pentru a face acest lucru, puteți utiliza un plugin sau puteți face ajustări direct la fișierul header.php. Codul părții vizibile (informator) este inserat în subsolul site-ului folosind pluginul Header și Footer înainte de eticheta de închidere

sau la bara laterală folosind un widget.

2. Postează conținut... Adăugarea codului la începutul și la sfârșitul postării pe toate paginile categoriei, atunci când postarea este complet afișată.

Cod de inserat înainte de fiecare postare (cod de inserat înainte de fiecare postare). Introducerea codului la începutul fiecărei postări (articol) a categoriei după titlu, numai dacă articolul este afișat integral.

Cod de inserat după fiecare postare (cod de inserat după fiecare postare). Inserarea unui cod după fiecare postare într-o categorie.

3. Conținutul paginii. Adăugarea codului la începutul și la sfârșitul postării tuturor paginilor statice, atunci când postarea este complet afișată.

Cod care trebuie introdus înaintea fiecărei pagini. Inserarea codului la începutul fiecărei postări (articol) a unei pagini statice după titlu, numai dacă articolul este afișat integral.

Cod care trebuie inserat după fiecare pagină. Codul va fi inserat după postare pe fiecare pagină statică.

4. Faceboock... Dacă adăugați meta-caracteristica og: imagine (protocolul Open Graph, cu care puteți introduce metadate în format Social Graph pe paginile cu resurse), de exemplu, lista de contacte Faceboock, atunci când faceți clic pe butonul Faceboock la începutul sau la sfârșitul postărilor, puteți controla selecția imaginii pe toate paginile. care va merge pe peretele utilizatorului.

5. Fragmente... Este posibil să setați pasaje care sunt trimise pe peretele utilizatorului făcând clic pe butonul de rețele sociale situat la începutul sau la sfârșitul postării. Pasajele sunt denumite, unde N este numărul pasajului de la 1 la 5.

6. Note și coduri parcate. Note.