Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Programi
  • Kako premjestiti elemente u css. Apsolutno pozicionirani inline elementi postaju blok elementi

Kako premjestiti elemente u css. Apsolutno pozicionirani inline elementi postaju blok elementi

U HTML-u se svi elementi mogu podijeliti na blok i inline elemente. Blok elementi su obično predstavljeni kao pravokutna područja s određenom količinom informacija. Uz njihovu pomoć se gradi mreža stranice. Takvi elementi zauzimaju sav raspoloživi prostor u širini, a prije i poslije njih obično postoji prijelom reda. Blokovi se mogu postaviti uvlake, horizontalne i okomite veličine.

Značajke blok elemenata

Blok oznake uključuju oznake koje ističu veliku količinu tekstualnih informacija:

,
,

,

,

,
    . Označiti
    često se koristi u izgledu modernih stranica za stvaranje mreža i jednostavno znači neka vrsta bloka ili kontejnera. U njega je dopušteno ugniježditi druge oznake, što stoga nije moguće sa svim elementima bloka
    zgodan za korištenje. Blokovi su obično naslagani jedan na drugi i nisu ugniježđeni unutar inline elemenata. HTML inline elementi su tekst, a CSS se koristi za njegovo oblikovanje.

    Uz danu širinu sadržaja, ukupna širina bloka je zbroj desnog i lijevog dopuna, margina, obruba i širine. Zadana visina - od gornjeg i donjeg paddinga, margina, obruba i visine. Tekst u blok elementima je prema zadanim postavkama poravnat lijevo. Ako jedan od njih sadrži inline elemente zajedno s blok elementima, tada se oko inline elemenata kreira anonimni blok. Koristit će zadani stil. Također će naslijediti zadani stil dodijeljen njegovom roditelju.

    Tijek dokumenata

    Tijek se odnosi na redoslijed u kojem se prikazuju elementi stranice, određen svojstvima navedenim u CSS-u. Istodobno, prema zadanim postavkama, blokovi se poredaju odozgo prema dolje, a inline oznake, ako nema dovoljno mjesta, prenose se u novi red i nalaze se odozgo prema dolje i s lijeva na desno. Položaj elementa na stranici ovisi o njegovu mjestu u kodu: što je viši, to se nalazi ranije. Svaki od blok elemenata izgleda kao pravokutnik koji gura susjedne od sebe. Ovo ponašanje možete promijeniti pomoću posebnih svojstava. Poravnavanje u CSS-u određenih okvira prema sredini ili bočnim stranama spremnika naziva se pozicioniranje.

    Elementi za pozicioniranje

    Položaj blokova može se kontrolirati korištenjem apsolutnog i relativnog pozicioniranja. Pozicioniranje se koristi kako bi se velikim dijelovima na stranici dalo određeno mjesto, za stvaranje složenih sučelja, skočnih prozora i ukrasnih elemenata. Glavno svojstvo koje se koristi za pozicioniranje blokova u CSS-u je položaj. Ima četiri glavna svojstva:

    • srodnika;
    • apsolutni;
    • fiksni;
    • statički.

    Uz njihovu pomoć možete mijenjati načine izgleda postavljanjem jednog od četiri parametra: gore, desno, dolje ili lijevo. Postoji i svojstvo za naručivanje slojeva - z-index. Pozicioniranje sa statičkim svojstvom općenito se ne koristi, jer označava zadano pozicioniranje blokova. Stoga, korištenje bilo kojeg parametra ne utječe ni na koji način. Ostala tri svojstva koriste se za raspored: relativno, apsolutno, fiksno.

    Relativno pozicioniranje

    Relativno pozicioniranje blokova u CSS-u, odnosno položaj: relativno svojstvo, znači da se element može pomicati i mijenjati njegov izvorni položaj. Takav blok i dalje ostaje u toku. Zapravo, nije on taj koji je raseljen, nego njegova kopija. Vrijednosti svojstava su postavljene tako da točno određuju koliko će se blok pomaknuti u jednom ili drugom smjeru. Obično se mjere u pikselima. Ali prihvatljivo je koristiti druge jedinice.

    Korištenje svojstava u relativnom pozicioniranju

    Svojstvo top pomiče kopiju određenog bloka gore ili dolje za broj piksela navedenih u svojstvu. Kada ga koristite, elementi koji se nalaze ispod ili iznad ostaju na svojim mjestima, budući da se pomaknuti blok također nikamo ne pomiče.

    Donje svojstvo pomiče blok u suprotnom smjeru od gornjeg svojstva. Pozitivna vrijednost pomaže da se pomakne gore, a negativna vrijednost pomaže dolje. Desna i lijeva svojstva pomiču element udesno, odnosno ulijevo. Kombinirajući ih sve, možete postaviti točnu lokaciju bloka na stranici, pomičući ga duž okomite i vodoravne koordinatne osi. Ako povećate uvlake, oni će se izračunati ne od ruba samog bloka, već od njegove kopije pomaknute u stranu.

    Apsolutno pozicioniranje

    Apsolutno pozicioniranje okvira u CSS-u zadano je apsolutnom vrijednošću svojstva položaja. Element koji je apsolutno pozicioniran ispada iz toka dokumenta, a susjedni blokovi zauzimaju njegovo mjesto. Širina takvog elementa rasteže se ovisno o njegovom sadržaju, a može se pomicati postavljanjem određenih vrijednosti na svojstva gornje, lijevo, desno, donje. Apsolutno pozicioniranje blokova u CSS-u korisno je za naslove. Ali pozicija: apsolutna radi ne samo za blok elemente, već i za inline elemente.

    Središnji elementi

    Pozicionirani apsolutno inline element ponašat će se točno kao inline element. Stoga, uz pomoć pozicioniranja, možete kontrolirati u CSS-u i tekstu. Na njega možete primijeniti neka nova svojstva, kao što je promjena visine i širine. Centriranje i okomito poravnanje u CSS-u koristi kombinaciju nekoliko svojstava. Kontrolira okomito poravnanje gornjeg svojstva. Ako želite centrirati blok u CSS-u, glavni spremnik mora biti relativno pozicioniran, a element koji se poravnava mora biti apsolutno pozicioniran. Spremnik treba biti postavljen na vrh: 50%, a za pomicanje elementa na pola njegove vlastite visine upotrijebite svojstvo translate s vrijednošću "0, -50%". Apsolutno pozicionirani elementi mogu se izdvojiti u novi tip, budući da imaju svojstva koja nisu dostupna za druge vrste pozicioniranja.

    Pozicioniranje u odnosu na gornji lijevi kut preglednika

    Lijeva, gornja, desna i donja svojstva rade drugačije s apsolutno i relativno pozicioniranim elementima. Za relativne elemente, ova svojstva određuju pomak u odnosu na mjesto na kojem se element nalazi. Apsolutno pozicionirani zauzimaju prostor u odnosu na određeni koordinatni sustav vezan uz veličinu prozora preglednika. Polazna točka ovog sustava su kutovi prozora. Kada koristite lijevo svojstvo, padding će se mjeriti s lijeve strane preglednika, ali se traka za pomicanje neće pojaviti. Svojstvo top, kada je postavljeno apsolutno, postavlja padding od vrha preglednika do vrha elementa na koji se primjenjuje. Kombinacijom oba svojstva, element se može premjestiti u odnosu na gornji lijevi kut preglednika.

    Pozicioniranje u odnosu na gornji desni kut preglednika

    Slično, pomoću desnih i gornjih svojstava, možete prikvačiti element na desnu stranu prozora preglednika i promijeniti njegov položaj okomito, pomičući ga u gornji desni kut. Ako je vrijednost desnog svojstva negativna, blok će biti pomaknut izvan okvira prozora. Nakon toga bi se trebala pojaviti traka za pomicanje. Za pomicanje elementa prema dolje koristite svojstvo bottom. Postavlja padding od donjeg ruba prozora preglednika do dna bloka. Negativna vrijednost također uzrokuje pojavljivanje trake za pomicanje kada se element gurne iza dna prozora preglednika.

    Koordinatni sustav u apsolutnom pozicioniranju

    Prema zadanim postavkama, svi elementi koji su postavljeni na apsolutni položaj vezani su za isti koordinatni sustav - prozor preglednika. Ali može se promijeniti davanjem relativnog pozicioniranja nekog roditeljskog elementa. Tada će podređeni blok promijeniti svoju lokaciju ovisno o roditelju. Ako među roditeljskim elementima postoji nekoliko s relativnim pozicioniranjem, tada je odbrojavanje od najbližeg od njih. U ovom slučaju, zadano pozicioniranje će biti od onoga što je postavljeno u oznaci tijela.

    Referentna točka za apsolutno pozicionirani element

    Prije nego što je element dobio apsolutnu poziciju, bio je na nekom mjestu nazvanom implicitni datum. Ako ne postavite svojstva za takav blok, on se neće pomaknuti. Možete ga premjestiti postavljanjem svojstva margine. Djeluje slično svojstvima pozicioniranja. Ako ne definirate vrijednost lijevog svojstva i svih ostalih, tada će biti jednaka auto. Također možete koristiti automatski za vraćanje elemenata na njihova izvorna mjesta.

    Fiksno pozicioniranje

    Druga vrijednost je fiksna. Svojstvo položaja sidri element na određeno mjesto. Fiksno pozicioniranje se često koristi za izradu izbornika u CSS-u. Slično je apsolutnom, ali fiksni blok se ispušta iz toka. Čak i pri pomicanju stranice, takav će element ostati na mjestu, pa ga je prikladno koristiti za izradu izbornika u CSS-u. Referentna točka će tada biti usidrena na prozor preglednika. Ako postoji nekoliko pozicioniranih blokova, svojstvo z-indeksa koristi se za njihovo slaganje. Može se koristiti za poništavanje relativnih blokova apsolutnim dajući im odgovarajući indeks, izražen kao cijeli broj. Što je veći, to će blok biti veći.

    18.02.15 21,4K

    Ako izrežete bilo koju stranicu stvorenu na temelju html-a, tada ćete vidjeti određenu slojevitu strukturu. Štoviše, svojim će izgledom biti sličan slojevitom kolaču. Ako tako mislite, onda najvjerojatnije niste dugo jeli. Dakle, prvo zadovoljite svoju glad, a zatim ćemo vam pokazati kako centrirati div sloj na svojoj web-lokaciji:

    Prednosti izgleda pomoću oznake

    Postoje dvije glavne vrste izgradnje strukture gradilišta:

    • tablični;
    • Blok.

    Tablični raspored je dominantan od početka interneta. Njegove prednosti uključuju točnost zadanog pozicioniranja. Ali, ipak, ima očite nedostatke. Glavni su veliki dio koda i mala brzina preuzimanja.

    Kada koristite tablični izgled, web stranica se neće prikazati dok se potpuno ne učita. Dok se kada se koriste div blokovi, elementi se prikazuju odmah.

    Osim velike brzine učitavanja, izgradnja blokova stranice omogućuje vam da smanjite količinu html koda za nekoliko puta. Uključujući korištenje CSS klasa.

    Međutim, za strukturiranje prikaza podataka na stranici treba koristiti tablični izgled. Klasičan primjer njegove uporabe je prikaz tablica.

    Izgradnja blokova na temelju oznaka

    također se nazivaju slojevitim, a sami blokovi su slojevi. To je zato što se pri korištenju određenih vrijednosti svojstava mogu postaviti jedan na drugi, slično slojevima u Photoshopu.

    Pomagala za pozicioniranje

    U blok rasporedu, pozicioniranje slojeva najbolje je izvesti pomoću kaskadnih stilskih listova. Glavno CSS svojstvo odgovorno za poziciju

    , je plovak.
    Sintaksa svojstva:
    plutati: lijevo | desno | nijedan | naslijediti,
    Gdje:

    • lijevo - poravnava element s lijevim rubom zaslona. Ostatak elemenata omota se udesno;
    • desno - poravnanje s desne strane, omatanje ostatka elemenata - s lijeve strane;
    • nema - zamatanje nije dopušteno;
    • naslijediti - naslijediti vrijednost roditeljskog elementa.

    Razmotrite lagani primjer pozicioniranja divova pomoću ovog svojstva:

    Lijevi blok


    Sada pokušajmo upotrijebiti isto svojstvo za postavljanje trećeg diva u središte stranice. Ali, nažalost, float nema središnju vrijednost. A kada se novom bloku dodijeli vrijednost poravnanja udesno ili ulijevo, on se pomiče u navedenom smjeru. Stoga ostaje samo postaviti sva tri bloka na plutajući: lijevo:


    Ali ni ovo nije najbolja opcija. Kada se prozor smanji, svi slojevi se poredaju u jedan red okomito, a kada se veličina poveća, lijepe se za lijevi rub prozora. Dakle, trebamo bolji način za centriranje divova.

    Centriranje slojeva

    U sljedećem primjeru koristit ćemo sloj kontejnera za postavljanje ostalih elemenata. Time se rješava problem pomicanja blokova jedan u odnosu na drugi kada se promijeni veličina prozora. Centriranje spremnika u sredini vrši se postavljanjem svojstava margine na nulu za margine odozgo i auto sa strane (margina: 0 auto ):

    Lijevi blok

    središnji blok


    Ovaj isti primjer pokazuje kako možete centrirati div vodoravno. A ako malo uredite gornji kod, možete postići okomito poravnanje blokova. Da biste to učinili, samo trebate promijeniti duljinu sloja spremnika (smanjiti ga). Odnosno, nakon uređivanja svog css-a, klasa bi trebala izgledati ovako:

    Nakon promjene, svi blokovi će se poredati strogo u nizu u sredini. Njihov se položaj neće promijeniti ni u jednoj veličini prozora preglednika. Ovako izgleda div centriran okomito:


    U sljedećem primjeru koristili smo niz novih css svojstava za centriranje slojeva unutar spremnika:


    Kratak opis css svojstava i njihovih vrijednosti koje smo koristili u ovom primjeru da centriramo div unutar diva:
    • display: inline-block - postrojava blok element u liniju i omota ga drugim elementom;
    • vertikalno poravnanje: sredina - poravnava element u sredini u odnosu na roditelj;
    • margin-left - postavlja marginu lijevo.

    Kako napraviti vezu iz sloja

    Koliko god čudno zvučalo, moguće je. Ponekad može biti potreban div blok kao poveznica pri postavljanju različitih vrsta izbornika. Razmotrimo praktični primjer implementacije sloja veze:

    Link na našu stranicu


    U ovom primjeru, koristeći prikaz linije: block , postavljamo vezu na vrijednost elementa bloka. A da bi cijela visina diva postala veza, postavite visinu: 100%.

    Skrivanje i prikazivanje blok elemenata

    Blok elementi pružaju više mogućnosti za proširenje funkcionalnosti sučelja od zastarjelog tabelarnog izgleda. Često se događa da je dizajn stranice jedinstven i prepoznatljiv. Ali morate platiti za takav ekskluzivni nedostatak slobodnog prostora.

    To se posebno odnosi na glavnu stranicu, cijena oglašavanja na kojoj je najveća. Stoga nastaje problem gdje "ugurati" još jedan reklamni banner. I ovdje se ne možete izvući s poravnavanjem diva sa središtem stranice!

    Racionalnije rješenje je da neki blok bude skriven. Evo jednostavnog primjera takve implementacije:

    Ovo je čarobni gumb. Klikom na njega će se sakriti ili prikazati skriveni blok.

    Od autora: pozdrav. Pozicioniranje css elemenata vrlo je važna tema u izgradnji web stranice. U ovom članku predlažem da ga detaljnije razmotrimo, sve načine pomicanja blokova po web stranici.

    Koje su vrste

    Ako govorimo o pozicioniranju blok elemenata, onda se postavlja pomoću svojstva položaja. Ima četiri značenja i svako zaslužuje zasebno razmatranje.

    Apsolutno pozicioniranje

    Ovo je prva poznata vrsta. Postavlja se ovako: pozicija: apsolutna. Nakon toga blok gubi svoja uobičajena svojstva i potpuno ispada iz normalnog toka. Što je ovo stream? Pokušajte staviti nekoliko elemenata na razini bloka u nizu u oznaci. Kako će oni postati? Jedan za drugim, i ništa više.

    Ovo je uobičajeno ponašanje blokova prema zadanim postavkama. Ali što se događa s blokom koji ima definirano apsolutno pozicioniranje? Potpuno ispada iz normalnog toka, drugi blokovi to jednostavno prestaju primjećivati, kao da nikad nije postojao, ali element ostaje na stranici. Apsolutno pozicioniranje u css-u često se koristi za točno pozicioniranje ukrasnih elemenata, ikona i drugih dodataka.

    Sada se može pomicati koristeći svojstva lijevo, desno, gornje i donje. Prema zadanim postavkama, pomicanje se događa u odnosu na rubove prozora preglednika, ali ako je roditeljski element postavljen na položaj: relativan, tada se pomak događa u odnosu na roditeljski blok.

    Blok (položaj: apsolutni; dolje: 0; desno: 0; )

    Blok (

    pozicija : apsolutna ;

    dolje: 0

    desno: 0

    Element će se premjestiti u donji desni kut. Primjećujem da često tako rade gornji gumb - samo ga stave apsolutno u sam kut. A evo još jednog primjera gdje ću najprije pokazati moguće oznake:

    < div id = "wrapper" >

    < div class = "block" > < / div >

    < / div >

    A sada css stilovi za ovaj isječak:

    #wrapper( pozicija: relativna; ) .block( pozicija: apsolutna; vrh: 0; desno: 10px; )

    #omot(

    položaj : relativan ;

    Blok (

    pozicija : apsolutna ;

    vrh : 0 ;

    desno: 10px;

    U ovom primjeru prvo smo zabilježili relativni položaj roditeljskog spremnika (relativno - više o tome kasnije u članku), a zatim postavili apsolutni položaj za isti .block element. Kao rezultat toga, koordinate će se brojati ne iz samog prozora preglednika, već s rubova roditeljskog elementa, odnosno bloka omotača.

    Relativno pozicioniranje css elemenata

    Ovo je sljedeći pogled i piše se ovako - pozicija: relativna. Koordinate su određene istim svojstvima kao u apsolutnom položaju. Jedina značajna razlika je u tome što element formalno ne ispada iz toka – za njega ima mjesta.

    Djelovanje ove vrijednosti može se usporediti s vidljivošću: skriveno, kada je element skriven sa stranice, ali mjesto ispod njega ostaje netaknuto. Isto se događa i s relativnim postavljanjem - blok se može premjestiti bilo gdje, ali mjesto ispod njega ostaje prazno i ​​neće ga zauzeti drugi dijelovi.

    Također je važno znati da pomak ne dolazi s rubova prozora web preglednika, već s mjesta gdje je blok izvorno stajao. tj.:

    Blok (položaj: relativan; vrh: 10px; desno: 50px; )

    Blok (

    položaj : relativan ;

    vrh: 10px;

    desno: 50px

    Blok će se pomaknuti 50 piksela udesno i 10 piksela ulijevo.

    Fiksiranje

    Sigurno ste na internetu više puta vidjeli na stranicama kada, prilikom pomicanja, banner nije nestao, već je nastavio biti u vašoj zoni vidljivosti, kao da se drži na jednom mjestu. To se uglavnom provodi pomoću fiksnog pozicioniranja. Da biste to učinili, trebate napisati:

    Položaj: statički ili redoviti statički položaj

    Posljednji pogled je statičan, što je normalno ponašanje elemenata na razini bloka. Ne treba ga napisati, jer je zadana, ali morate znati za četvrtu vrijednost. Ponekad je položaj: statički napisan kako bi nadjačao drugu vrstu pozicioniranja na određenim događajima na web stranici.

    Kako ispravno postaviti blok u css?

    Razmotrili smo značenja, ali to nije dovoljno da zatvorimo ovu temu za sebe. Zapravo, morate razumjeti gdje i koje vrste pozicioniranja trebate primijeniti. S fiksnim, već sam vam dao primjer - može se koristiti za stvaranje ljepljivih bočnih traka, zaglavlja ili podnožja.

    Relativno pozicioniranje je korisno kada trebate malo pomaknuti blok u odnosu na njegov položaj i dalje ga držati u toku. Također je postavljeno na roditeljske blokove za korištenje apsolutnog kretanja za podređene elemente.

    Ostale tehnike: centriranje, plutajući blokovi

    Svojstvo položaja ne rješava sve probleme s postavljanjem blok elemenata. Kako biste, na primjer, stvorili mrežu web-mjesta s njom? Nemam dobrih ideja. Ovdje dobro dolaze druge značajke.

    Uz pomoć float u css-u često se izrađuju mreže. Svojstvo vam omogućuje da gurnete blok na lijevi ili desni rub roditelja (float: lijevo, float: desno), dopuštajući da nekoliko elemenata bloka postanu u jednom redu, što se vrlo često događa na bilo kojem mjestu.

    Centriranje se radi ovako: blok treba upisati određenu širinu, a zatim postaviti marginu: 0 auto svojstvo. To je automatska vrijednost koja će je vodoravno poravnati točno u sredini. Naravno, za to mora biti jedini u svojoj liniji, inače ništa neće raditi.

    Sve vrste pozicioniranja navedene u ovom članku mogu biti korisne web programeru. Negdje treba umetnuti ikonu (položaj: apsolutni), negdje malo korigirati položaj bloka, ostavljajući mjesto iza njega (pozicija: relativna), a gdje widget treba biti fiksiran (pozicija: fiksna). Općenito, poznavanje ove imovine definitivno neće biti suvišno.

    Pa, kako biste naučili još više iz svijeta izrade web stranica, svakako se pretplatite na naš blog i nabavite nove materijale za obuku. A savjetujem vam i da pogledate naš, gdje se također pokreće slična tema. (elementi za pozicioniranje)

    Vlasništvo položaj ima sljedeća značenja
    statički srodnika apsolutna fiksno
    Svojstva se primjenjuju samo zajedno s njim (isključujući položaj: statički;)
    vrh dno pravo lijevo
    mogu biti prisutni u isto vrijeme
    margina transformirati float (isključujući položaj: apsolutan; i položaj: fiksni;)

    Dodajte praznu oznaku ispred div s class="primer" - .

    Uvod

    Elementi na web stranici zauzimaju određenu količinu prostora. Po analogiji s čamcima u igri "Battleship". Između brodova trebaju biti prazne ćelije - margina.

    Da biste postavili jedan element na drugi, morate postaviti negativnu vrijednost za marginu. Ali tada će se sadržaji oznaka međusobno preklapati. Uz pomoć položaja i svojstava, oni se nekako penju na razinu 2.

    Prirodnim redoslijedom, donje oznake u kodu prikazane su iznad gornjih. Zahvaljujući z-indeksu na razini 2, vidljivi element možete odrediti sami.


    Statičko pozicioniranje - položaj: statičan;

    položaj: statički je zadana vrijednost i nadjačava relativni, apsolutni i fiksni. Vrijednosti svojstava top, bottom, right, left se zanemaruju. U nedostatku transformacije, ni z-indeks se ne uzima u obzir.

    ALI
    B
    NA

    Relativno pozicioniranje - položaj: relativan;

    Blok kojem dodjeljujemo položaj: relativno će imati prioritet. Sadržaj donjeg elementa je skriven.

    ALI
    B
    NA

    Da bi se blok B smjestio na vrh C, ali ispod A, nije dovoljno dodijeliti položaj: u odnosu na njega, budući da je u kodu ispod bloka A, što znači da će ga preklapati.

    ALI
    B
    NA

    Također morate postaviti z-indeks za element B da bude manji od onog za blok A.

    ALI
    B
    NA

    Umjesto margine u relativnom pozicioniranju, ponekad je bolje koristiti svojstva gornje, donje, desno, lijevo. Polazna točka za njih je početni položaj elementa. Istovremeno, blok B nastavlja biti smješten kao da je blok A na istom mjestu - ostavlja prazan prostor za njega. Stoga ne možete dočarati s praznim div ().

    ALI
    B
    NA

    Potpuna analogija s nekretninom

    ALI
    B
    NA

    Za inline elemente

    Ugrađeni elementi margine ne pomiču se gore-dolje (). Samo vrh, dno

    BALIB
    ili
    BALIB

    B A B

    Apsolutno i fiksno pozicioniranje

    Čini se da bi blok s položajem: apsolutni trebao biti iznad položaja: relativan, ali to nije slučaj, ovdje vrijedi prirodni poredak. To znači da će z-indeks omogućiti odabir prioritetnog elementa između njih.

    ALI
    B
    NA

    Blok C zanemaruje početni položaj bloka B, jer s položajem: apsolutnim i položajem: fiksnim, element prestaje utjecati na susjedne oznake bilo kroz svoju širinu/visinu ili float: lijevo.

    ALI
    B
    NA

    Finalni stol

    karakteristična svojstva položaj: statičan; položaj: relativan;
    transformirati: prevesti();
    pozicija: apsolutna; položaj: fiksni;
    preklapanje elementi se ne smiju postavljati jedan na drugi elementi imaju prednost nad vidljivošću nad statičkim. Ostale vrijednosti su ekvivalentne. Onaj tko je ispod u kodu bit će vidljiv ili ima veliku vrijednost z-indeksa
    referentna točka gore, desno, dolje i lijevo ignorirao početni položaj elementarub roditeljskog elementarub prozora preglednika
    elementi okolo uzeti u obzir trenutni položaj elementauzeti u obzir početni položaj elementa zanemariti položaj elementa
    širina: 100% je širina element (za inline)/roditeljski element (za blok)roditeljski element s položajem koji nije postavljen na statički prozor preglednika
    na elementu za pomicanje stranicepotezima "zalijepi" na navedeno mjesto u prozoru preglednika

    A sada, da biste konsolidirali materijal, kliknite na gumbe na početku članka, razmislite zašto je došlo do takvih promjena.

    Web programeri ovih dana mogu izgraditi složene izglede web stranica koristeći različite CSS tehnike. Neke od ovih tehnika imaju dugu povijest (floats), druge (flexbox) su stekle popularnost posljednjih godina.

    U ovom članku pobliže ćemo pogledati neke malo poznate stvari o CSS pozicioniranju.

    Prije nego što počnemo, ukratko pregledajmo osnove različitih vrsta pozicioniranja.

    Pregled dostupnih metoda pozicioniranja

    CSS svojstvo položaja definira tip pozicioniranja elementa.

    Opcije pozicioniranja

    statički je zadana vrijednost svojstva pozicioniranja. Izvještavamo da ovaj element ne koristi pozicioniranje - pozicioniranje se primjenjuje samo ako navedete vrstu pozicioniranja koja nije zadana.

    Da biste to učinili, postavite svojstvo položaja na jednu od sljedećih vrijednosti:

    • srodnika
    • apsolutna
    • fiksno
    • ljepljiv

    I tek nakon postavljanja pozicioniranja, možete koristiti svojstva koja pomiču element:

    • pravo
    • dno
    • Početna vrijednost ovih svojstava je auto ključna riječ.

    Imajte na umu da ako element ima svojstvo položaja postavljeno na apsolutno ili fiksno, onda je to apsolutno pozicioniran element. Također, za pozicionirane elemente počinje raditi svojstvo z-indeksa, koje određuje redoslijed slaganja.

    Razlike između glavnih metoda pozicioniranja

    Pogledajmo sada na brzinu tri osnovne razlike između dostupnih vrsta pozicioniranja:

    • apsolutno (apsolutno) pozicionirani elementi potpuno su uklonjeni iz toka, njihovo mjesto zauzimaju najbliži susjedi.
    • relativno pozicionirani (relativni) i ljepljivi (ljepljivi) zadržavaju svoje mjesto u potoku i njihovi najbliži susjedi ga ne zauzimaju. Međutim, padding ovih elemenata ne zauzima prostor, već ga drugi elementi potpuno zanemaruju, a to može dovesti do preklapanja elemenata.
    • fiksni elementi (a fiksno pozicioniranje je vrsta apsolutnog pozicioniranja) uvijek su pozicionirani u odnosu na okvir za prikaz (zanemarujući pozicioniranje predaka), dok se ljepljivi elementi pozicioniraju u odnosu na najbližeg pretka pomicanjem (overflow:auto). I samo u nedostatku takvih predaka oni se postavljaju u odnosu na zonu vidljivosti.

    Ovo možete detaljnije vidjeti u demou:

    Napomena: Pozicioniranje "ljepljivih elemenata" i dalje je eksperimentalna tehnologija s ograničenom podrškom preglednika. Naravno, ako želite, možete koristiti polifill za dodavanje ove funkcionalnosti pregledniku, ali s obzirom na nisku rasprostranjenost ovog svojstva, ovaj članak se neće raspravljati.

    Elementi za pozicioniranje s tipom apsolutnog položaja

    Siguran sam da većina vas zna kako funkcionira apsolutno pozicioniranje. Međutim, za početnike mnoge stvari u njemu mogu zbuniti.

    Stoga sam odlučio krenuti s njim u opisu malo poznatih značajki pozicioniranja.

    Dakle, apsolutno pozicionirani element je pomaknut od svog najbližeg pozicioniranog pretka. Naravno, ovo funkcionira ako bilo koji od predaka ima položaj koji nije statičan - ako element nema pozicioniranih pretka, on je pomaknut od opsega.

    To dokazuje sljedeći primjer:

    U ovom demonstraciji, zeleni okvir je početno pozicioniran apsolutno s nultim paddingom bottom:0 i left:0 , njegov predak (crveni okvir) uopće nije bio pozicioniran.

    Međutim, relativno smo pozicionirali vanjski omot (element s klasom jumbotron). Obratite pažnju na to kako se položaj zelenog bloka mijenja kada se promijeni tip pozicioniranja njegovih predaka.

    Apsolutno pozicionirani elementi zanemaruju svojstvo float

    Ako primijenimo apsolutno ili fiksno pozicioniranje na plutajući element, svojstvo float bit će postavljeno na ništa. S druge strane, ako postavimo relativno pozicioniranje, element će ostati plutajući.

    Pogledajte povezani demo:

    U ovom primjeru definiramo dva različita elementa koji lebde udesno. Imajte na umu da kada crveni okvir postane apsolutno pozicioniran, zanemaruje vrijednost svojstva float, dok relativno pozicionirani zeleni okvir zadržava vrijednost float.

    Apsolutno pozicionirani inline elementi postaju blok elementi

    Inline element s apsolutnim ili fiksnim pozicioniranjem poprima svojstva blok elementa. Pretvorba inline elemenata u blok elemente detaljnije je opisana u tablici.

    U ovom slučaju stvorili smo dva različita elementa. Prvi (zeleni blok) je blok element, a drugi (crveni blok) je inline element. U početku je vidljiv samo zeleni blok.

    Crveni okvir nije vidljiv jer mu postavljena svojstva širine i visine rade samo s elementima na razini bloka i inline-bloka, a budući da nema sadržaja, nema nikakve dimenzije.

    Kada crvenom okviru date apsolutni ili fiksni položaj, on postaje blokovski i veličine bloka navedene u njemu stupaju na snagu.

    Apsolutno pozicionirani elementi nemaju padding kolaps

    Prema zadanim postavkama, kada se dvije okomite margine dodiruju, one se spajaju u jednu jednaku najvećoj od njih. To se zove kolaps marže.

    Ponašanje apsolutno pozicioniranih elemenata ovdje je slično plutajućim elementima - njihov padding nije spojen sa svojim susjedima.

    U ovoj demonstraciji, element ima padding od 20px. Njegov padding se skuplja s paddingom roditeljskog elementa, također 20px. Kao što vidite, samo apsolutno pozicioniranje se ne urušava.

    Ali kako možemo spriječiti padding od kolapsa? Moramo staviti neki separator između njih.

    To može biti padding ili obrub, a može se primijeniti i na roditeljske i podređene elemente. Druga mogućnost je dodavanje clearfixa roditeljskom elementu.

    Pozicioniranje elemenata s pikselima i postocima

    Jeste li ikada koristili postotke umjesto piksela za pozicioniranje elemenata? Ako je odgovor potvrdan, onda znate da pomak elementa ovisi o odabranim jedinicama (pikseli ili postoci).

    Malo je neugodno, zar ne? Pa prvo da vidimo što specifikacija kaže o postotnom pomaku:

    Pomak kao postotak širine (za lijevo i desno) ili visine (vrh ili dolje) roditeljskog okvira. Za lijepljene elemente, pomak se izračunava kao postotak širine (za lijevo i desno) ili visine (vrh ili dolje) toka. Negativne vrijednosti su dopuštene.

    Kao što je spomenuto, prilikom postavljanja pomaka kao postotka, položaj elementa ovisi o širini i visini njegovog roditelja.

    Demo pokazuje ovu razliku:

    Ovaj primjer koristi piksele i postotke za pomak. Naravno, kada se specificira pomak u pikselima, element se pomiče tamo gdje treba biti.

    A ako odaberemo postotke za pomak, rezultat će ovisiti o veličini nadređenog elementa. Ovdje je vizualizacija koja pokazuje kako se izračunava nova pozicija:

    Napomena: kao što vjerojatno znate, svojstvo transformacije (zajedno s raznim funkcijama prevođenja) također vam omogućuje promjenu položaja elementa. Ali u ovom slučaju, kada se koriste postoci, izračun će se temeljiti na veličini samog elementa, a ne njegovog roditelja.

    Zaključak

    Nadam se da vam je ovaj članak pomogao bolje razumjeti pozicioniranje u CSS-u i razjasnio glavne probleme.

    Vrhunski povezani članci