absolut: elementul este poziționat relativ la limitele elementului container dacă proprietatea sa de poziție nu este statică
relativ : elementul este poziționat relativ la poziția sa implicită. De obicei, scopul principal al poziționării relative nu este de a muta un element, ci de a stabili un nou punct de ancorare pentru poziționarea absolută a elementelor sale imbricate.
fix : elementul este poziționat în raport cu fereastra browserului, acest lucru vă permite să creați elemente fixe care nu își schimbă poziția atunci când sunt derulate
Nu ar trebui să aplicați simultan proprietatea float și orice alt tip de poziționare decât static (adică tipul implicit) unui element.
Poziționare absolută
Zona de vizualizare a browserului are o margine de sus, de jos, din dreapta și din stânga. Fiecare dintre aceste patru margini are o proprietate CSS corespunzătoare: stânga, dreapta, sus și jos. Valorile acestor proprietăți sunt specificate în pixeli, ems sau procente. Nu este necesar să setați valori pentru toate cele patru părți. De regulă, sunt setate doar două valori - indentarea din partea de sus a marginii superioare și indentarea de la marginea din stânga.
Aspect bloc în HTML5
SALUT LUME
Aici div-ul poziționat absolut va fi de 100 de pixeli la stânga marginii ferestrei și la 50 de pixeli de jos.
Nu este atât de important ca după acest element div să mai existe și alte elemente. Acest bloc div va fi în orice caz poziționat în raport cu limitele ferestrei de vizualizare a browserului.
Dacă un element cu poziționare absolută este situat într-un alt container, care, la rândul său, are o valoare a proprietății de poziție care nu este egală cu static , atunci elementul este poziționat relativ la limitele containerului:
Poziționarea în HTML5
Poziționare relativă
Poziționarea relativă este de asemenea specificată folosind valoarea relativă. Pentru a specifica poziția specifică în care este deplasat elementul, se folosesc aceleași proprietăți de sus, stânga, dreapta, jos:
Poziționarea în HTML5
proprietatea z-index
În mod implicit, când două elemente au același chenar, elementul care a fost definit ultima dată în marcajul html este afișat deasupra celuilalt. Cu toate acestea, proprietatea z-index vă permite să schimbați ordinea elementelor atunci când sunt suprapuse. Proprietatea ia un număr ca valoare. Elementele cu o valoare z-index mai mare vor apărea deasupra elementelor cu o valoare z-index mai mică.
De exemplu:
Poziționarea în HTML5
Acum să adăugăm o nouă regulă stilului de bloc redBlock:
Aici indexul z este 100. Dar nu trebuie să fie numărul 100. Deoarece al doilea bloc are un indice z nedefinit și este de fapt zero, pentru redBlock putem seta proprietatea indicelui z la orice valoare mai mare decât zero.
Și acum primul bloc se va suprapune pe al doilea, și nu invers, așa cum a fost cazul la început.
Imaginați-vă că un dezvoltator web nu trebuie să se gândească deloc la cum va arăta vizual pagina finală. Pur și simplu scrie codul, elementele în sine se aliniază pe pagină, de sus în jos (bloc) și de la stânga la dreapta (inline). Cu cât este scris mai sus în document codul, cu atât va apărea mai sus pe pagină.
În general, vom vedea comportamentul natural al elementelor și ordinea în care sunt afișate pe pagină - fluxul documentului. Dar nu suntem deloc multumiti de aceasta comanda vrem sa plasam sigla in coltul din stanga sus, iar butonul putin in dreapta. Avem nevoie de control complet asupra tuturor elementelor, noi decidem unde și ce va fi amplasat. Și pentru aceasta aveți nevoie de un instrument (proprietate) care schimbă comportamentul normal al elementelor din flux. Ce fel de proprietate este aceasta?
ÎN CSS stiluri aceasta se numește poziționare (poziţie), care poate fi obișnuit (static), relativă (relativ)și absolută (absolut).
Poziționarea relativă în CSS
La poziționare relativă, blocul se deplasează în raport cu poziția inițială. Cu toate acestea, după ce a scris blocului:
Poziția: relativă;
nu se va întâmpla nimic, va rămâne pe loc. Și sistemul de coordonate mută blocul (sus, jos, stânga, dreapta), cu valori atât pozitive, cât și negative.
Cum functioneaza?
În interiorul unui bloc galben cu o clasă bloc-galben există un bloc roșu cu o clasă bloc-relativ. Într-un flux normal, blocul roșu se suprapune pe cel galben, deoarece este scris ultimul în cod.
pozitia de pornire
poziție relativă
Trebuie să mutăm blocul roșu în jos cu 10 pixeli. Acest lucru se poate face doar prin schimbarea forțată a poziției blocului roșu. Așa scriem noi sus: 10px, dar trebuie să indicați de unde vor fi numărați acești 10 pixeli?
Fiind înregistrat poziție: relativă, clarificăm că numărul este relativ la poziția sa actuală.
Bloc-galben ( culoare de fundal: #ffe70f;
}
relativ la bloc ( poziție: relativă; sus: 10px; culoare de fundal: #ed5b77;
}
În imagine vedem cum blocul roșu s-a deplasat în jos, cu 10 pixeli în jos față de poziția inițială.
Dacă îl eliminați din cod poziție: relativă, atunci blocul va rămâne pe loc. Dacă în schimb relativ, scrie absolut, apoi implicit acești 10 pixeli vor fi numărați de la marginea ferestrei browserului și, ca urmare, blocul nostru, dimpotrivă, se va ridica, ajungând la marginea de jos a browserului. Și asta nu făcea parte din planurile noastre.
Poziționare absolută în CSS
Există un bloc în imagine pozitionat absolut, acesta este momentul în care sistemul de coordonate este numărat de la marginea browserului, prin înlocuirea unui singur cuvânt, am schimbat poziția blocului.
Poziție: absolută;
Există o particularitate. Poziționare absolută afectează și elementele inline. Dacă elementul inline este dat poziție: absolută, atunci se va comporta ca un bloc. Aceasta este analogă cu proprietatea - afisare: bloc.
Asta nu este tot, elementul „absolut” situat în interiorul părintelui „relativ” își schimbă punctul de referință de coordonate și începe să fie poziționat departe de părinte.
poziție: relativă
poziție: absolută;
Bloc cu clasa bloc-absolut fi în interiorul părintelui bloc-galben.
Bloc-galben ( poziție: relativă; umplutură: 10px; culoare de fundal: #ffe70f;
}
Din moment ce blocul galben are poziționare relativă, apoi blocul roșu cu poziționare absolută, se deplasează în raport cu roșu cu pixelii specificați.
Bloc absolut ( poziție: absolută; jos: 10px; stânga: 10px; culoare de fundal: #ed5b77;
}
Poziționare fixă
Când derulați o pagină, un bloc cu poziție: fixă, va rămâne pe loc, această metodă este de obicei folosită pentru a repara bara de navigare.
indicele z
Rezolvă ordinea suprapunerii blocurilor „absolute”. Avem nevoie ca blocul roșu să fie deasupra celui galben, apoi indicăm z-index: 2 pentru roșu și z-index: 1 pentru galben.
roșu
Galben
Bloc-rosu ( poziție: relativă; indicele z: 2; culoare de fundal: #ffe70f;
}
Bloc-galben ( poziție: absolută; sus: 20px; indicele z: 1; culoare de fundal: #ed5b77;
}
Unul dintre cele mai bune lucruri despre CSS este că stilurile ne oferă capacitatea de a poziționa conținutul și elementele pe o pagină în aproape orice mod imaginabil. Acest lucru adaugă structură designului nostru și ajută la creșterea vizuală a conținutului.
Există mai multe tipuri diferite de poziționare în CSS, fiecare dintre aceste tipuri având propriul său domeniu de aplicare. În acest capitol, vom analiza câteva cazuri de utilizare diferite — crearea de aspecte reutilizabile și poziționarea unică a elementelor de unică folosință — și vom descrie câteva metode pentru a face acest lucru.
Poziționare prin plutitor
O modalitate de a poziționa elementele pe o pagină este prin proprietatea float. Această proprietate este destul de versatilă și poate fi utilizată în multe moduri diferite.
În esență, proprietatea float preia un element, îl elimină din fluxul normal al paginii și îl poziționează la stânga sau la dreapta elementului său părinte. Toate celelalte elemente de pe pagină se vor înfăşura în jurul unui astfel de element. De exemplu, paragrafele se vor înfăşura în jurul unei imagini dacă elementul proprietatea float este setată.
Când proprietatea float este aplicată la mai multe elemente simultan, face posibilă crearea unui aspect cu elemente flotante lângă sau vizavi unul de celălalt, așa cum se arată într-un aspect cu mai multe coloane.
Proprietatea float ia mai multe valori, cele două cele mai populare fiind stânga și dreapta, care permit elementului să plutească la stânga sau la dreapta părintelui său.
Imag (float: stânga; )
plutește în practică
Să creăm un aspect general al paginii cu un antet în partea de sus, două coloane în centru și un subsol în partea de jos. În mod ideal, această pagină ar trebui să fie marcată cu elemente
,
,
Pentru referință, elementele plutitoare sunt poziționate de-a lungul marginii elementului părinte. Dacă nu există niciun părinte, elementul plutit va fi poziționat de-a lungul marginii paginii.
Când setăm un element să plutească, îl eliminăm din fluxul normal al documentului HTML. Acest lucru face ca lățimea implicită a acelui element să devină lățimea conținutului său. Uneori, cum ar fi atunci când creăm coloane pentru un aspect reutilizabil, acest comportament este nedorit. Acest lucru poate fi remediat prin adăugarea unei proprietăți de lățime cu o valoare fixă pentru fiecare coloană. În plus, pentru a preveni atingerea elementelor plutitoare între ele, determinând conținutul unui element să stea lângă altul, putem folosi proprietatea margine pentru a seta spațiul dintre elemente.
Mai jos extindem blocul anterior de cod adăugând o marjă și o lățime pentru fiecare coloană pentru a modela mai bine rezultatul dorit.
float poate modifica valoarea de afișare a elementului
Pentru un element flotant, este de asemenea important să înțelegeți că elementul este eliminat din fluxul normal al paginii și că valoarea de afișare implicită a elementului se poate modifica. Proprietatea float se bazează pe valoarea de afișare a elementului care este setată la bloc și poate modifica valoarea de afișare implicită a elementului dacă nu este deja redată ca element bloc.
De exemplu, un element a cărui afișare este specificată ca inline , cum ar fi inline , ignoră orice proprietăți de înălțime sau lățime. Cu toate acestea, dacă specificați un float pentru un element inline, valoarea afișată se va schimba în bloc și apoi elementul poate prelua deja proprietățile de înălțime sau lățime.
Când plutim un element, trebuie să fim atenți la modul în care acesta afectează valoarea proprietății de afișare.
Pentru două coloane puteți seta float, o coloană ca stânga și cealaltă ca dreapta, dar pentru mai multe coloane va trebui să ne schimbăm abordarea. Să presupunem, de exemplu, că am dori să avem un rând de trei coloane între elementele noastre Și
......
...
...
Pentru a aranja aceste trei elemente într-un rând cu trei coloane, trebuie să setăm float pentru toate elementele ca la stânga. De asemenea, trebuie să reglam lățimea luând în considerare coloanele suplimentare și așezându-le unul lângă celălalt.
Aici avem trei coloane, toate cu lățime și valoare de marjă egale și float setat la stânga .
Demonstrarea unui aspect cu trei coloane cu float
Curățarea și flotarea conținutului
Proprietatea float a fost concepută inițial pentru a permite conținutului să circule în jurul imaginilor. O imagine poate primi un float și tot conținutul din jurul acelei imagini curge în mod natural în jurul ei. Deși acest lucru funcționează excelent pentru imagini, proprietatea float nu a fost cu adevărat destinată să fie utilizată în scopuri de layout și poziționare și, prin urmare, vine cu câteva capcane.
Unul dintre aceste capcane este că, uneori, stilurile adecvate nu apar pe un element care este adiacent sau este părintele unui element plutit. Când un element este setat să plutească, acesta este eliminat din fluxul normal al paginii și, ca urmare, stilurile elementelor din jurul acelui element flotant pot fi afectate negativ.
Adesea, valorile proprietăților de marjă și de umplutură sunt interpretate incorect, determinându-le să se amestece în elementul plutit. Alte proprietăți pot fi, de asemenea, afectate.
O altă eroare este că uneori conținutul nedorit începe să se înfășoare în jurul elementului float. Eliminarea unui element din fluxul documentului permite tuturor elementelor din jurul elementului plutit să-l ocolească și să ocupe orice spațiu disponibil în jurul elementului plutit, ceea ce este adesea nedorit.
În exemplul nostru anterior cu două coloane, după ce am adăugat un float elementelor Și
Demonstrație de aspect fără curățare plutitoare
Pentru a împiedica conținutul să se înfășoare în jurul elementelor flotante, trebuie să ștergem float-ul și să readucem pagina la fluxul normal. Ne vom uita la cum să curățăm flotoarele și apoi vom arunca o privire asupra conținutului lor.
Curățarea plutitoarelor
Ștergerea unui float are loc folosind proprietatea clear, care ia mai multe valori diferite: cele mai frecvent utilizate valori sunt stânga , dreapta și ambele .
Div (clar: stânga; )
Valoarea din stânga șterge flotoarele din stânga, în timp ce valoarea din dreapta șterge flotoarele din dreapta. Valoarea ambelor , totuși, va șterge flotoarele stânga și dreapta și este adesea cea mai ideală opțiune.
Revenind la exemplul nostru anterior, dacă folosim proprietatea clear cu o valoare a ambelor pe un element
Subsol (clar: ambele; )
Demonstrație de aspect cu curățare flotantă
Conținutul plutește
În loc să ștergeți float , o altă opțiune este să setați conținutul să float . Rezultatul va fi aproape același, dar conținutul float asigură într-adevăr că toate stilurile noastre se vor afișa corect.
Pentru a seta conținutul flotant, elementele flotante trebuie să fie în interiorul elementului părinte, acesta va acționa ca un container, lăsând fluxul documentului complet normal în afara acestuia. Stilul pentru acest element părinte este reprezentat de o clasă de grup, așa cum se arată aici:
Nu se întâmplă multe aici, dar, în esență, tot ce face CSS este să șterge toate elementele plutitoare din interiorul elementului de grup și să readucă documentul la fluxul normal.
Mai precis, pseudoelementele ::before și ::after, așa cum sa discutat în Lecția 4, generează dinamic elemente deasupra și dedesubtul unui element cu grup de clasă . Aceste elemente nu includ niciun conținut și sunt redate ca elemente de tabel, similar elementelor bloc. Un element generat dinamic după ce un element de grup șterge float din interiorul elementului de grup, la fel cum a făcut clear înainte. În cele din urmă, elementul de grup șterge și orice float care poate apărea înaintea lui în cazul în care există un float cu valoarea left sau right . De asemenea, este inclus un mic truc care face ca browserele mai vechi să se joace frumos.
Există mai mult cod aici decât clar: ambele comenzi, dar poate fi destul de util.
Având în vedere aspectul paginii noastre pe două coloane, am putea încheia Și
Tehnica prezentată aici este cunoscută sub numele de „clearfix” și este adesea văzută pe alte site-uri cu numele de clasă clearfix sau cf. Am ales să folosim grupul de nume de clasă deoarece reprezintă un grup de elemente și exprimă mai bine conținutul.
Atunci când elementele sunt setate să plutească, este important să monitorizați modul în care acestea afectează fluxul paginii și să vă asigurați că fluxul paginii este resetat prin ștergere sau prin conținut flotant, așa cum este prevăzut. În caz contrar, ținerea evidenței floaturilor poate provoca o mulțime de bătăi de cap, mai ales pe paginile care conțin mai multe rânduri, fiecare cu mai multe coloane.
La practică
Să ne întoarcem la site-ul Styles Conference și să încercăm să adăugăm floats la anumite conținuturi.
În primul rând, înainte de a aplica float oricărui element, să oferim conținut acelor elemente flotate adăugând clearfix la CSS-ul nostru. În fișierul main.css, chiar sub stilurile noastre de grilă, vom adăuga clearfix sub numele clasei de grup, la fel ca înainte. /* ================================================== ====== Clearfix ======= ====================================* / .grup::înainte, .grup::după (conținut: " "; afișare: tabel; ) .grup::după (clar: ambele; ) .grup (clar: ambele; *zoom: 1; )
Acum că putem folosi float, să-l definim pentru principal
element interior la stânga și lăsați restul conținutului din antet să curgă spre dreapta.
Pentru a face acest lucru, adăugați clasa logo la element
. Apoi, în interiorul CSS-ului nostru, vom adăuga o nouă secțiune de stil pentru antetul principal. În această secțiune vom selecta elementul
În timp ce suntem aici, haideți să adăugăm puțin mai multe detalii logo-ului nostru. Să începem prin a plasa elementul sau o întrerupere de linie între cuvintele „Stiluri” și „Conferință” pentru a forța textul logo-ului nostru să apară pe două linii.
În CSS, vom adăuga o chenar în partea de sus a siglei noastre și niște căptușeală verticală, astfel încât logo-ul să poată „respira” liber.
floated, vrem să setăm conținutul să plutească . Părinte imediat pentru
este un element așa că îi vom adăuga o clasă de grup. Acest lucru va aplica stilurile clearfix pe care le-am setat mai devreme.
...
Element prinde contur, așa că haideți să aruncăm o privire asupra elementului
Spre deosebire de element cu toate acestea, nu vom aplica clasa direct elementului flotant. De data aceasta, vom adăuga o clasă la părintele elementului float și vom folosi un selector CSS unic pentru a selecta elementul și apoi îi vom da un float .
Să începem prin adăugarea clasei primar-footer la element
Acum că clasa primar-footer este setată pe element
/* ========================================= Subsol principal ====== ==================================== */ .primary-footer small ( float: left; )
Pentru a verifica - aici selectăm elementul , care ar trebui să fie în interiorul unui element cu o valoare a atributului de clasă primar-footer, cum ar fi elementul nostru
În cele din urmă, vom adăuga puțină căptușeală în partea de sus și de jos a elementului.
Subsol principal (padding-bottom: 44px; padding-top: 44px; )
Luând în considerare toate aceste modificări ale elementelor Și
Orez. 5.01. Folosind mai multe elemente flotante Și
Poziționare prin bloc inline
Pe lângă utilizarea float, un alt mod în care putem poziționa conținutul este folosirea proprietății de afișare în combinație cu valoarea inline-block. Metoda blocului inline, așa cum vom discuta mai târziu, este utilă în primul rând pentru aranjarea paginilor sau pentru a plasa elemente într-o linie unul lângă celălalt.
Amintiți-vă că valoarea blocului în linie pentru proprietatea de afișare afișează elemente într-o linie și le permite să preia toate proprietățile modelului casetei, inclusiv înălțimea , lățimea , padding , chenarul și marginea . Utilizarea blocului inline ne permite să profităm din plin de modelul blocului fără a fi nevoie să ne facem griji cu privire la eliminarea oricăror flotători.
inline-block în practică
Să aruncăm o privire la exemplul nostru cu trei coloane de la început. Vom începe prin a salva codul HTML astfel:
......
...
...
Acum, în loc să plutesc pentru cele trei elemente ale noastre le vom schimba valoarea de afișare la inline-block , lăsând proprietățile marginii și lățimii așa cum erau anterior. Ca rezultat, CSS-ul nostru va arăta astfel:
Din păcate, acest cod în sine nu este suficient pentru a face trucul și ultimul element este împins la o nouă linie. Amintiți-vă, deoarece elementele de bloc inline apar pe o linie unul lângă celălalt, ele includ un singur spațiu între ele. Când dimensiunea fiecărui spațiu individual este adăugată la valoarea lățimii și marjei orizontale a tuturor elementelor dintr-un rând, lățimea totală devine prea mare, împingând ultimul element în afară la o nouă linie. Pentru a afișa toate elementele pe o singură linie, ar trebui să eliminați spațiul alb dintre fiecare
.
Demonstrarea elementelor inline-block cu spațiu
Eliminarea spațiului dintre elementele blocului în linie
Există mai multe metode pentru eliminarea spațiului dintre elementele blocului în linie, iar unele sunt mai complexe decât altele. Ne vom concentra asupra celor mai simple două metode, ambele apar în HTML.
Prima soluție este să puneți fiecare etichetă nouă de element de deschidere pe aceeași linie cu eticheta de închidere a elementului anterior . În loc să folosim o linie nouă pentru fiecare element, ajungem să începem elementele pe aceeași linie. HTML-ul nostru ar putea arăta astfel:
...
...
...
...
Scrierea elementelor inline-block în acest fel asigură că nu există spațiu între astfel de elemente în HTML. Prin urmare, spațiul nu va apărea când pagina este afișată.
Demonstrarea elementelor inline-block fără spații
O altă metodă pentru eliminarea spațiului dintre elementele blocului inline este deschiderea unui comentariu HTML imediat după eticheta de închidere a elementului. Apoi închideți comentariul chiar înainte de eticheta de deschidere a următorului element. Acest lucru permite elementelor inline-block să înceapă și să se termine pe linii separate în HTML și va „comenta” orice spațiu potențial dintre elemente. Codul rezultat va arăta astfel:
...
...
...
...
Niciuna dintre aceste opțiuni nu este perfectă, dar sunt utile. Tind să prefer utilizarea comentariilor pentru o mai bună organizare, dar opțiunea pe care o alegeți depinde în întregime de dvs.
Creați machete reutilizabile
Când construiți un site, este întotdeauna cel mai bine să scrieți stiluri modulare care pot fi reutilizate în altă parte, iar aspectele reutilizabile se află în partea de sus a listei de coduri reutilizabile. Aspectele pot fi create folosind elemente flotante sau blocuri inline, dar care funcționează cel mai bine și de ce?
Întrebarea dacă elementele flotante sau în bloc sunt mai bune pentru structura paginii este deschisă dezbaterii. Abordarea mea este de a folosi elemente inline-block pentru a crea o grilă sau un aspect de pagină și apoi să folosesc un float atunci când vreau ca conținutul să curgă în jurul elementului (care este pentru care au fost concepute floats atunci când lucrez cu imagini). În general, mi se pare mai ușor de lucrat cu elementele inline-block.
Cu toate acestea, folosește ceea ce funcționează cel mai bine pentru tine. Dacă ești mai familiarizat cu o abordare decât cu alta, atunci folosește-o.
Sunt noi specificații CSS în lucru - în special proprietăți flex și grid - care vă vor ajuta să decideți cum să vă aranjați cel mai bine paginile. Fii cu ochii pe aceste metode atunci când încep să apară.
La practică
Având o înțelegere fermă a machetelor reutilizabile, este timpul să implementăm unul pe site-ul nostru Styles Conference.
Pentru site-ul web Styles Conference vom crea un aspect cu trei coloane folosind elemente de bloc inline. Vom face acest lucru astfel încât să obținem trei coloane de aceeași lățime, sau două coloane cu lățimea totală împărțită între ele ca 2/3 pentru una și 1/3 pentru cealaltă.
Mai întâi, vom crea clase care definesc lățimea acestor coloane. Vom numi aceste două clase col-1-3 pentru o treime și col-2-3 pentru două treimi. În secțiunea Grid a fișierului nostru main.css, să mergem mai departe și să definim aceste clase și lățimile lor corespunzătoare.
Dorim ca ambele coloane să apară ca elemente de bloc inline. De asemenea, trebuie să ne asigurăm că alinierea lor verticală este setată în partea de sus a fiecărei coloane.
Să creăm doi selectoare noi care partajează afișarea și alinierea verticală .
Aruncă o privire din nou la CSS. Am creat două selectoare de clasă col-1-3 și col-2-3 separate prin virgulă. O virgulă la sfârșitul primului selector înseamnă că este urmată de un alt selector. După cel de-al doilea selector există o acoladă deschisă, care indică faptul că începe descrierea stilului. Folosind o virgulă pentru a separa selectoarele, putem lega un stil la mai mulți selectori în același timp.
Vrem să punem puțin spațiu între coloane pentru a ajuta la descompunerea conținutului. Acest lucru se poate face prin adăugarea de umplutură orizontală la fiecare coloană.
Acest lucru funcționează bine, totuși, atunci când două coloane sunt plasate una lângă alta, lățimea spațiului dintre ele va fi de două ori mai mare decât spațiul de la marginea exterioară. Pentru a echilibra acest lucru, vom pune toate coloanele noastre într-o grilă și vom adăuga aceeași umplutură.
Să folosim clasa grid pentru a ne defini grila și apoi să dăm aceeași umplutură orizontală claselor grid, col-1-3 și col-2-3. Cu virgule care separă din nou selectoarele noastre, CSS-ul nostru arată astfel:
Când setăm căptușeală orizontală, trebuie să fim atenți. Amintiți-vă, în ultima lecție am creat un container cu clasa container pentru a centra tot conținutul nostru pe pagină cu o lățime de 960 de pixeli. În prezent, dacă ar fi să punem un element grilă în interiorul unui element container, umplutura orizontală a acestora s-ar prăbuși împreună și coloanele noastre nu ar apărea proporționale cu lățimea restului paginii.
Vom face acest lucru prin descompunerea vechiului set de reguli container în următoarele:
Acum orice element cu clasa container sau grid va avea o lățime de 960 de pixeli și va fi situat în centrul paginii. În plus, am păstrat umplutura orizontală existentă pentru orice element cu clasa container, mutându-l într-un set de reguli nou, separat.
Bine, toată partea grea a instalării rețelei este finalizată. Acum este timpul să lucrăm cu HTML-ul nostru și să vedem cum funcționează aceste clase.
Vom începe cu teaser-urile de pe pagina de start, în fișierul index.html, aliniate pe trei coloane. În prezent, tease-urile sunt împachetate în element cu clasa container. Vrem să schimbăm clasa containerului în grid, astfel încât să putem începe să plasăm coloane în interior.
...
...
...
...
Și, în sfârșit, deoarece fiecare dintre coloanele noastre este un element de bloc inline, trebuie să ne asigurăm că eliminăm orice spațiu alb dintre ele. Pentru a face acest lucru, vom folosi comentarii și vom adăuga documentație în fiecare secțiune pentru a ne organiza mai bine codul.
...
...
...
Pentru a verifica, am lăsat un comentariu pe rândul 3 care identifică secțiunea „Speakers” care îl urmează. La sfârșitul rândului 7, deschidem un comentariu imediat după eticheta de închidere. În cadrul acestui comentariu, pe linia 9 definim următoarea secțiune „Program”. Apoi, închideți comentariul la începutul rândului 11, chiar înainte de eticheta de deschidere . O structură de comentarii similară apare pe rândurile 13 până la 17 între cele două elemente , chiar înainte de secțiunea Locație. În general, am comentat orice spațiu alb potențial între coloane, utilizând simultan aceleași comentarii pentru a identifica secțiunile noastre.
Acum avem o grilă reutilizabilă cu trei coloane care acceptă diferite aspecte, folosind lățimi de coloane de 1/3 și 2/3. Pagina noastră de pornire conține acum trei coloane, care separă toate teaser-urile.
Orez. 5.02. Pagina de pornire a Conferinței Styles include acum un aspect cu trei coloane
Demo și cod sursă
Mai jos puteți vizualiza site-ul web Styles Conference în starea sa actuală, precum și descărca codul sursă curent al site-ului.
Poziționare unică a elementelor
Mai devreme sau mai târziu, toată lumea va dori să poziționeze un element cu precizie, dar elementele float sau inline-block nu permit un astfel de truc. Elementele flotante care elimină un element din fluxul paginii produc adesea rezultate nedorite, deoarece elementele din jur se înfășoară în jurul elementului flotant. Elementele de bloc inline, cu excepția cazului în care creăm coloane, pot fi destul de dificile când vine vorba de poziționarea corectă. Pentru situații ca aceasta, putem folosi proprietatea de poziție în combinație cu proprietățile de offset ale blocului.
Proprietatea de poziție determină modul în care elementul este poziționat pe pagină și dacă va fi afișat în fluxul normal de documente. Este folosit împreună cu proprietățile de offset ale blocului sus , dreapta , jos și stânga , care determină exact unde va fi poziționat elementul prin mișcarea elementului în direcții diferite.
În mod implicit, valoarea poziției fiecărui element este setată la static , ceea ce înseamnă că elementul există în fluxul normal al documentului și nu necesită nicio proprietate pentru a-l poziționa. Valoarea static este cel mai adesea suprascrisă de valoarea relativă sau absolută, pe care o vom analiza în continuare.
Poziționare relativă
Setarea proprietății de poziție la relativă permite elementelor să apară în fluxul normal al paginii, rezervând spațiu pentru element așa cum este intenționat și împiedicând alte elemente să curgă în jurul acestuia. Cu toate acestea, vă permite, de asemenea, să modificați poziția unui element folosind proprietățile offset. De exemplu, luați în considerare următoarele HTML și CSS:
cu clasa offset valoarea poziției este setată la relativă, precum și două proprietăți offset - stânga și sus. Acest lucru menține poziția inițială a elementului și altor elemente nu li se permite să se deplaseze în acea zonă. În plus, proprietățile offset mută elementul împingându-l cu 20 de pixeli din stânga și 20 de pixeli din partea de sus a locației originale.
Pentru elementele relativ poziționate, este important de știut că proprietățile de offset ale blocului determină unde va fi mutat elementul, având în vedere poziția sa inițială. Deci, o proprietate din stânga cu o valoare de 20 de pixeli împinge de fapt elementul la dreapta 20 de pixeli. O proprietate de sus cu o valoare de 20px va împinge apoi elementul în jos cu 20px.
Când poziționăm un element utilizând proprietățile de offset, elementul se suprapune pe elementul de sub el, mai degrabă decât să-l împingă în jos, așa cum o fac marja sau proprietățile de umplutură.
Poziționare absolută
Valoarea absolută pentru proprietatea de poziție diferă de valoarea relativă prin aceea că elementul poziționat absolut nu apare în fluxul normal al documentului, iar spațiul și poziția originală a elementului poziționat absolut nu sunt rezervate.
În plus, elementele poziționate absolut se deplasează în raport cu elementul părinte poziționat relativ cel mai apropiat. Dacă nu există un părinte poziționat relativ, atunci elementul poziționat absolut va fi poziționat relativ la element
. Aceasta este o mică informație; să aruncăm o privire la cum funcționează în interiorul unui cod:
În acest exemplu, elementul este poziționat în raport cu, dar nu include nicio proprietate de offset. Prin urmare, poziția sa nu se schimbă. Element
cu clasa offset include valoarea poziției ca absolută . Din moment ce elementul este elementul părinte poziționat relativ cel mai apropiat de
, apoi elementul
va fi pozitionat relativ la element
.
Pentru elementele relativ poziționate, proprietățile offset determină în ce direcție va fi mutat elementul în raport cu el însuși. Pentru elementele poziționate absolut, proprietățile offset determină în ce direcție va fi mutat elementul în raport cu cel mai apropiat părinte poziționat relativ.
Ca urmare a proprietăților din dreapta și de sus, elementul
va apărea la 20 de pixeli din dreapta și 20 de pixeli din partea de sus în interior
.
Din moment ce elementul
pozitionat absolut, nu este pozitionat in fluxul normal al paginii si se va suprapune oricarei elemente din jurul acesteia. Mai mult, poziția de pornire
nu este salvat și alte elemente pot ocupa acest loc. În general, majoritatea poziționărilor se pot întâmpla fără a utiliza proprietățile de poziție și proprietățile offset, dar în unele cazuri pot fi extrem de utile.
rezumat
Învățarea cum să poziționați conținutul în HTML și CSS este un pas uriaș către stăpânirea acestor limbi. Adăugați la aceasta modelul bloc și suntem pe drumul nostru spre a deveni dezvoltatori front-end.
În HTML, toate elementele pot fi împărțite în bloc și inline. Elementele bloc sunt de obicei reprezentate ca zone dreptunghiulare cu o anumită cantitate de informații. Cu ajutorul lor, se construiește grila de pagini. Astfel de elemente ocupă tot spațiul disponibil în lățime și, de obicei, există o întrerupere de linie înainte și după ele. Blocurilor pot fi date indentări, dimensiuni orizontale și verticale.
Caracteristicile elementelor bloc
Etichetele bloc includ etichete care evidențiază o cantitate mare de informații text: