Cum se configurează smartphone-uri și PC-uri. Portal informativ

Cum să faci un antet frumos în css. Antetul paginii

Salutare tuturor. Azi m-am uitat la statistici interogări de căutare, prin care oamenii merg pe blog și au constatat că sunt câteva care nu sunt deloc relevante. Nu, nu blogul, ci articolele.

Unul din ei cum să remediați antetul site-ului? Am decis imediat să corectez situația și să scriu un articol, deoarece subiectul este relevant și există întrebări în acest domeniu.

În general, există mai multe moduri de a derula o pagină. Puteți folosi javascript, dar nu sunt foarte puternic în acest subiect și doar îl învăț. Prin urmare, deocamdată, ne vom descurca cu CSS. Dumnezeu să ajute, remediați antetul site-ului(și nu doar o pălărie, ci orice alt element), o poți face cu „sânge mic” :)

De fapt, metoda de remediere a unui element la derularea unei pagini este foarte simplă și vei fi surprins cât de ușor se rezolvă această problemă.

Remedierea antetului la derularea paginii

Pentru a remedia antetul, va trebui să creați două blocuri. Unu - pentru a putea centra capacul. Și există un copil în el, care va fi înregistrat. Sa incepem...

Ca aceasta html simplu structura! Acum să adăugăm stiluri!

#headerMain ( lățime:920px; înălțime: 195px; margin:0px automat; z-index:0; ) #header ( lățime:920px; înălțime: 195px; fundal: url(../img/bg-header.jpg) nu -repetare: index z: 9999;

Acum antetul va fi fixat în partea de sus a ecranului și nu se va mișca la derulare.

În ultimul articol am făcut-o cadru al nostru șablon HTML , care este gata pentru completare și înregistrare. Astăzi vă spun cum să faci un antet frumos pentru site-ul web (top parte) și un meniu simplu. Astăzi vom face și câteva modificări în stilurile altor blocuri.

Deci la ce avem acest moment? Acum avem aceste stiluri:

Html, corp ( înălțime: 100%; culoare: #000; fundal: #FFFFFF; împachetare cuvânt: break-word; font-size: 12px; font-family: Verdana, Arial, Sans-Serif; ) #wrapper ( înălțime :auto !important; înălțime:100%; înălțime minimă:100%; float:left; width:200px; ) #right (float:right; width:200px; ) #footer (înălțime:100px; margin-top:-100px; ) .clear (clear:both; ) #space (înălțime:100px ;

Și iată codul pentru șablon în sine:

Numele site-ului

În primul rând, să facem câteva modificări stilului blocului de înveliș:

#wrapper ( înălțime:auto !important; înălțime:100%; înălțime minimă:100%; lățime: 1024px; margine: 0 automat; aliniere text: stânga; )

Am stabilit o lățime fixă ​​- lățimea blocului, 1024 pixeli în dimensiune, a aliniat blocul în sine la centru și textul din el la stânga folosind text-align: left. Putem alinia blocul la centru folosind stilul marginii, setând marginile de sus și de jos la 0 și lățimea la automat. Din păcate, acest lucru nu funcționează întotdeauna Internet Explorer 6, deci în corp am scris text-align: center; și de aceea a trebuit să aliniez textul în blocul de împachetare și subsol la stânga. De asemenea, am specificat margin:0 în corp, setând astfel marginile de la margini la 0 pixeli. Ca rezultat, Body a ajuns să aibă următoarele stiluri:

Html, corp ( înălțime: 100%; culoare: #000; fundal: #FFFFFF; împachetare cuvânt: break-word; dimensiune font: 12px; familie font: Verdana, Arial, Sans-Serif; margine: 0; text -Aliniere la centru)

Am facut si modificari la subsol:

#footer ( lățime: 1024px; margine: 0 automat; text-align: left; height:100px; margin-top:-100px; fundal: #4a90d9; )

Totul aici este similar cu blocul wrapper: setați lățimea la 1024px, aliniați blocul în centru și aliniați textul la stânga. Am adăugat și margin-top: 20px la container; și a eliminat lățimea minimă, deoarece avem lățime fixăînvăluitor.

Ei bine, am pregătit șablonul, este timpul să trecem la antetul site-ului. Stilurile vor fi astfel:

#header (înălțime: 140px; fundal: #fff; padding-top: 40px; )

Înălțimea blocului este de 140 pixeli, fundalul este alb, iar marginea de la marginea superioară este de 40 pixeli. Acestea sunt toate modificările aduse stilurilor de antet.
Ce? Asta este tot? Și există un articol întreg numit după asta?
Desigur că nu. Antetul site-ului va fi format din alte elemente: un logo și un meniu, care vor fi concepute separat.

Să ne înregistrăm Cod șablon HTMLÎn interiorul blocului antet există această linie:
Acesta este în esență un link către pagina principala fără text, dar i se atribuie clasa class="logo". Acum trebuie să-l înregistrați stiluri css.

Sigla ( afișare: bloc; înălțime: 104 px; lățime: 390 px; fundal: url("image/logo.png") fără repetare; )

Am făcut blocul de elemente, i-am dat lățime și înălțime și am făcut și o imagine de logo pe fundal, pe care am pus-o în directorul de imagini. Toate imaginile șablon vor fi localizate în acest director. Dimensiunea imaginii este de 388*100 pixeli, așa că de ce dimensiunea blocului este ușor diferită? Am făcut înălțimea de 104 pixeli, astfel încât să existe un spațiu din imaginea logo-ului în partea de jos între meniul viitor și logo și am luat lățimea cu doi pixeli în plus pentru orice eventualitate, deoarece am întâlnit de câteva ori că Mozilla a determinat incorect dimensiunea imaginii și tăiați-o puțin. Gata, am terminat cu sigla. Meniu în

Aranjament în pagină este procesul de dezvoltare a structurii unui document HTML, al cărui rezultat este o pagină web. Structura unei pagini web este determinată de etichetele HTML corespunzătoare. Etichetele - blocuri de containere dreptunghiulare pentru conținut - nu apar în fereastra browserului. Ei spun browserului despre tipul de conținut, iar browserul, pe baza acestor informații, își afișează conținutul - fișiere text sau media.

Cum se creează o structură de pagină folosind blocuri (aspect bloc)

1. Cum să împărțiți aspectul paginii în secțiuni

Pentru a crea un aspect de pagină, trebuie să selectați secțiunile (secțiunile) principale ale documentului. Puteți citi mai multe despre elementele secționale în articol.

O pagină web standard conține următoarele secțiuni:


Orez. 1. Secțiunile principale ale paginii

Nu vom folosi elementul

, deoarece nu este acceptat de toate browserele.

Elemente

,
Și
- pe bază de bloc, astfel încât vor ocupa toată lățimea blocului - elementului lor container . O pagină cu acest aspect va arăta bine mici ecrane, dar pe dispozitivele cu Rezoluție înaltă Textul unor astfel de pagini va fi greu de citit. Prin urmare, trebuie să adăugați o etichetă de container pentru conținut - conținutul fiecărei secțiuni:


Orez. 2. Secțiunile principale ale paginii cu o etichetă de container

și setați lățimea maximă pentru el, căptușeală, care va separa conținutul de marginile ecranului dispozitivelor cu rezoluție scăzută, precum și umplutura externă, care vă permite să aliniați containerul în mijlocul blocului părinte:

Container ( lățime: 100%; lățime maximă: 1024 px; /* latime maxima poate avea un alt sens*/ padding: 0 15px; marja: 0 auto; )

Astfel, am primit un cadru pentru pagina noastră (înălțimea secțiunilor este în acest caz, virtual, deoarece fără conținut secțiunile au înălțime zero).

2. Aspectul antetului site-ului și poziționarea elementelor acestuia

Să începem să marcam prima secțiune, așa-numitul antet al paginii web. Element

concepute pentru grupare informații generaleși ajutoare de navigare în pagină/site. Să-l adăugăm în interiorul etichetei
logo-ul site-ului și link-uri de navigare:

SIGLĂ

Orez. 3. Antetul site-ului cu logo și linkuri adăugate

Logo ( float: stânga; ) nav ( float: dreapta; ) nav ul ( margine: 0; padding: 0; list-style: none; ) nav li ( display: inline-block; /*o modalitate de a plasa elemente într-un linie */)

Există mai multe moduri de a plasa elemente de bloc pe linie. Toate sunt date în lecție.


Orez. 4. Efectul prăbușirii blocului containerului

Observați că după ce am aplicat învelișul, antetul a dispărut. Acest lucru s-a întâmplat deoarece elementele plutitoare (cele care au setată proprietatea float) sunt eliminate din fluxul normal și containerul părinte nu le mai vede înălțimea, astfel încât elementul

iar elementul din interiorul lui cu clasa.container s-a prăbușit. Pentru a remedia această situație, să folosim curățarea fluxului pentru un element cu clasa .container:

Container:după (conținut: „”; afișare: tabel; șterge: ambele; )

Vom adăuga și noi la el margini verticale, separând elementele din interiorul acestuia de marginile antetului. Ca rezultat, stilurile vor arăta astfel:

Container ( lățime: 100%; lățime maximă: 1024 px; umplutură: 15 px; marjă: 0 automat; )
Orez. 5. Curățarea fluxului

Să luăm în considerare o situație în care o imagine servește ca logo. Poate fi adăugat direct în interiorul etichetei sau ca a imagine de fundal. Imaginea va avea propria înălțime, care poate fi foarte diferită de înălțimea meniului de navigare, așa că ne vom confrunta cu o problemă aliniere verticală elemente de antet.


Orez. 6. Imagine logo

În exemplul nostru, înălțimea logo-ului este de 38 px, așa că pentru a alinia linkurile meniului la mijlocul antetului, trebuie să le setați la înălțimea corespunzătoare a liniei:

Nav a (decor text: niciunul; înălțimea liniei: 38px; ) Fig. 7. Alinierea linkurilor meniului antet

3. Creați o grilă pentru partea principală a paginii

Partea principală a paginii este cel mai adesea o grilă de blocuri de diferite lățimi. Poziționarea unor astfel de blocuri se realizează și folosind proprietățile plutitoare. Vom împacheta fiecare rând de blocuri cu un bloc suplimentar cu clasa .row:


Orez. 7. Grila părții principale a paginii.col-1-2 ( lățime: 50%; float: stânga; ) .col-1-3 ( lățime: 33.3333333333%; float: stânga; ) .col-1-4 ( lățime: 25 %; float: stânga; .col-2-3 ( lățime: 66,6666666667%; float: stânga; )

Pentru un element cu clasa .row aplicăm și curățarea fluxului:

Container:după, .row:după (conținut: „”; afișare: tabel; clar: ambele; )

Pentru a separa rândurile unul de celălalt, puteți adăuga o marjă de jos:

Rând (marja-jos: 15px; )

Înălțimea blocurilor de grilă este determinată de înălțimea conținutului lor, deci poate fi diferită:


Orez. 8. Înălțimi diferite ale elementelor de grilă

Înălțimea blocurilor poate fi fixată specificând-o în mod explicit, de exemplu, .row div (înălțime: 100px) . Dar, în acest caz, trebuie să vă asigurați că atunci când adăugați adaptabilitate la aspect, conținutul blocurilor nu se va extinde dincolo de marginea blocului.

Dacă trebuie să setați culoare de fundal pentru blocurile de rând, atunci acest lucru se poate face după cum urmează: pentru un element cu clasa .row, adăugați noua clasa, care vă va permite să stilizați doar acest rând (se va dovedi a fi .row row-one), vom specifica pentru acesta culoarea de fundal a blocului mai mic în înălțime, iar pentru blocul înalt îl vom seta propria culoare, adică în acest fel vom realiza un substrat de fundal.

Lorem ipsum dolor sit amet.
Duis lobortis tempor torttor vel iaculis. Fusce volutpat commodo lacus, eget vestibulum lorem sempre at.
.row-one ( fundal: albastru deschis; ) .col-2-3 ( lățime: 66,6666666667%; plutire: stânga; fundal: scoici; )
Orez. 9. Mat de fundal

Dacă secțiunea principală a paginii conține doar două blocuri, atunci rândul suplimentar de wrapper nu poate fi adăugat:

4. Aspect subsolul paginii

Subsolul paginii, sau subsolul paginii, conține de obicei informații despre drepturile de autor, link-uri suplimentare etc. Toate aceste informații sunt plasate și în coloane, care pot avea lățimi identice sau diferite.

Adesea, sarcinile de aspect aparent simple necesită o structură complexă de markup HTML și utilizarea trucurilor CSS. Centrarea elementelor sau alinierea conținutului poate fi foarte obositoare. O astfel de sarcină este alinierea elementelor din partea de sus a site-ului, astfel încât logo-ul să fie în stânga, iar elementele de meniu să fie în dreapta. Puteți folosi float și position:absolute, iar pentru alinierea verticală puteți adăuga margine și umplutură elemente diferite. Se pare că nu este nimic complicat. Dar dacă site-ul ar trebui să fie afișat corect pe dispozitive mobile, apar multe probleme.

Mai jos este o modalitate concisă de a rezolva această problemă.

Marcajul HTML este cât se poate de simplu:

Foarte rau

Înălțimea antetului este fixă, adăugați text-align: justifica, pentru elementele copil:

Antet ( text-align: justificare; spațiere între litere: 1px; înălțime: 8em; umplutură: 2em 10%; fundal: #2c3e50; culoare: #fff; )

Adăuga display: inline-block pentru toate elementele nav astfel încât să le puteți aranja una după alta:

Antet h1, nav antet (afișare: bloc inline; )

A atribui text-align: justifica a funcționat așa cum ne dorim, trebuie să folosim un mic truc cu pseudo-elemente, care a fost găsit în articolul Tehnica grilă CSS perfect justificată folosind inline-block , de Jelmer de Maat:

Antet::după (conținut: ""; afișare: bloc inline; lățime: 100%; )

Rezultatul a fost alinierea orizontală, fără utilizare plutiȘi poziție: absolută. Acum trebuie să aliniați elementele pe verticală. Folosind vertical-align pentru elemente nav va exista o dependență de înălțimea blocului părinte - antetul. Și acest lucru nu este foarte corect. Exemple de utilizare a vertical-align: top și vertical-align: middle pe jsbin. Mai jos este poate cel mai mult mod convenabil aliniere verticală.

Să folosim din nou pseudo elemente. folosind un exemplu din articolul Centrarea în necunoscut, menționat de Michał Czernow:

Antet h1 ( înălțime: 100%; ) antet h1::before ( conținut: ""; afișare: bloc inline; aliniere verticală: mijloc; înălțime: 100%; )
Rezultatul este ceea ce aveți nevoie:

Au mai rămas două probleme de rezolvat: afișare corectă la cantitati mari text în antet și adaptabilitate. Dacă titlul site-ului este prea lung, aspectul va începe să alunece:

Folosind trucul pseudo-elementului antet:

Cod CSS

antet ( text-align: justificare; înălțime: 15em; umplutură: 2em 5%; fundal: #2c3e50; culoare: #fff; ) antet::after (conținut: ""; afișare: inline-block; lățime: 100%; ) header > div, header nav, header div h1 ( display: inline-block; vertical-align: middle; ) header > div ( lățime: 50%; înălțime: 100%; text-align: stânga; ) antet > div: :before (conținut: ""; afișare: bloc inline; aliniere verticală: mijloc; înălțime: 100%; )

Arata mult mai bine:

Acum să trecem la adaptabilitate. Există mai multe moduri de a rezolva această problemă, pur și simplu nu puteți seta înălțimea antetului, iar toate elementele interne vor fi adaptate la înălțime. Acest lucru nu va necesita al doilea truc cu pseudo-elemente, exemplu live pe jsbin.

Cod CSS

antet ( text-align: justify; padding: 2em 5%; background: #2c3e50; color: #fff; ) header::after (conținut: ""; afișare: inline-block; lățime: 100%; ) antet h1, header nav ( afișare: inline-block; vertical-align: middle; ) antet h1 ( lățime: 50%; text-align: stânga; padding-top: 0.5em; ) header nav ( padding-top: 1em; )

Dacă trebuie să setați înălțimea antetului, atunci va trebui să utilizați al doilea truc cu pseudo-elemente și să adăugați o interogare media pentru ecrane marimi diferite:

Ecran @media și (lățime maximă: 820 px)( antet ( înălțime: auto; ) antet > div, antet >

Rezultatul este adaptiv și arată astfel pe dispozitivele mobile:

În exemplu, 820px este folosit pentru claritate pe un site live, valoarea ar trebui, desigur, să fie diferită, în conformitate cu cerințele; Pentru a accepta Internet Explorer 8, trebuie să utilizați „:” pentru pseudo-elemente în loc de „::”.

Cod CSS final

@import url(http://fonts.googleapis.com/css?family=Lato:400,700italic); * ( padding: 0; margin: 0; ) body ( fundal: #1abc9c; font-family: „Lato”, sans-serif; text-transform: majuscule; letter-spacing: 1px;) antet ( text-align: justify ; înălțime: 8em; culoare: #fff (conținut: „"; lățime: 100%; h1 ( display: inline-block; vertical-align: middle; text-align: left; ) antet > div ( înălțime: 100%; ) antet > div::before ( conținut: ""; înălțime: 100%; ) antet > div h1 ( dimensiunea fontului: 3em; stilul fontului: cursiv; ) header nav a ( padding: 0 0.6em; white-space: nowrap; ) header nav a:last -child (padding-right: 0; ) @ ecran media și (lățime maximă: 720 px)( antet ( înălțime: automat; ) antet > div, antet > div h1, nav antet ( înălțime: automat; lățime: automat; afișare: bloc; text-align: center;


Rezultat:


Elementul site-ului pe care îl vom privi astăzi este unul dintre cele mai importante și foarte vizibile de pe pagină. Uneori nu o fac prea mare. Poate fi static sau dinamic. Totul depinde de dorințele și fanteziile designerului și proprietarului site-ului. Poate ați ghicit deja despre ce vom vorbi - așa este, despre antetul site-ului. Astăzi ne vom uita la patru moduri mod non-standard, cu care puteți proiecta această parte a site-ului. Datorită acestor metode, site-ul tău se va evidenția cu siguranță față de alții.

Puteți vedea patru exemple la următorul link:

Descarca

Cum se utilizează? — Anteturi animate pentru site

Partea HTML

În codul paginii, tot ce trebuie să introduceți este:

1 2 3 <div id = "antet mare" class = "antet mare" > id = "demo-canvas" > </div>

În bloc

cu id si clasa antet mare există o etichetă , în care are loc toată animația. Un bloc
conține doar o imagine de fundal.

parte Javascript

Apoi, la sfârșitul paginii, trebuie să vă conectați bibliotecile necesare. Sunt în dosar js(în arhiva cu surse - link la începutul articolului).

De exemplu, de exemplu nr. 1 trebuie să includeți următoarele biblioteci:

Mai jos am făcut capturi de ecran pentru fiecare dintre efecte.

Cele mai bune articole pe această temă